Shipped and released
Now
Page 4 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 4
navigate-decisionsreplaces the retiredrfc-statusskill. It queries both ADRs and RFCs for exact lifecycle, checked supersession lineage, contextual references, guidance context, and record detail. It also exports a self-contained offline HTML explorer with list, lifecycle-graph, guidance-context, and record-detail views.
- A token taxonomy that says nothing about a visual domain the surface needs — no value, and no
unresolvedrecord — is now an upstream gap. The build holds that axis and routes it to whoever produced the taxonomy, instead of inventing a type scale or stroke widths that read as resolved.
- A token taxonomy that says nothing about a visual domain the surface needs — no value, and no
- Installed Core can now rename an intent as a recoverable retire-and-issue operation. The old path becomes a tombstone, the successor receives a fresh target-token ordinal, citations and
workspace.tomlmove with it, and an interrupted run can be driven forward or back.
- Installed Core can now rename an intent as a recoverable retire-and-issue operation. The old path becomes a tombstone, the successor receives a fresh target-token ordinal, citations and
- Protected catalogue installation without manual token injection. AgentBundle now picks credentials automatically from a priority-ordered set: bearer token, JFrog CLI 2.105.0+ profile, exact-machine
.netrcrecord, and anonymous. Public catalogues need no setup. A broken configured provider stops resolution; no fallback across types. SetAGENTBUNDLE_CA_BUNDLEfor the direct path; useSSL_CERT_FILEorSSL_CERT_DIRto reachjf apion Linux.
- Protected catalogue installation without manual token injection. AgentBundle now picks credentials automatically from a priority-ordered set: bearer token, JFrog CLI 2.105.0+ profile, exact-machine
- The agent can now ask for the route from one symbol to another using
wicked-estate path. A result offound: falsewithdepth_bounded: truemeans the route was not proven absent — the search hit its depth limit — and you can raise--max-depth(up to 16) to look deeper. - A blast radius now tells you when the depth limit cut it short.
depth_horizon_reached: truein the JSON output means the result is a floor, not the full set;--depth N(maximum 24) lets you search deeper, and--depth 1isolates the direct dependents from the transitive ones.
- The agent can now ask for the route from one symbol to another using
- The
approved-visual-targetrung now resolves only when the direction artifact carriesvisual_target: confirmed. An approved target whose confirmation was never recorded no longer satisfies the rung; the distinction is in the artifact, not in a reviewer's memory.
- The
- A visual target now binds composition only once a person confirms it and
convergerecordsvisual_target: confirmedin the direction artifact. An unconfirmed target is still captured —convergerecords it asvisual_target: unconfirmed— it just does not bind, and the rung that reads the field is downstream infrontend-engineering.
- A visual target now binds composition only once a person confirms it and
- A work-loop run whose
state.jsonrecords no retry cap now shows the default cap of 5 on its event line, instead of no cap at all. The run was always held to 5, so a dashboard or alert watching how close it is to being refused was reading nothing where it should have read 5. A malformed cap, which the guard refuses, still reportsnull, and so does a retry count nothing has recorded; the key is always present, which is how a consumer tells "not recorded" from zero.
- A work-loop run whose
- Work planning now records only declined architectural additions that materially affect scope or design, and sizes review units by whether they can be independently understood, verified, or reviewed.
- Renaming a live intent whose title mentions tombstones now works. The rename validator reads a document title as a title rather than as a damaged retirement marker, so an intent called something like "Tombstone migration plan" is no longer refused. Nothing that should be refused now passes.
- Work-loop can now explain a scheduled wave before dispatch without authorizing concurrent writes.
loop-cohort wave-decision --jsonreports unfinished tasks asparallel-capableorsequential, includes pairwiseTouches:relations, and returns fixed public-safe JSON refusal envelopes while leaving ADR-0005's post-write gate and ADR-0061 D5 unchanged.
- Work-loop can now explain a scheduled wave before dispatch without authorizing concurrent writes.
- The governance-index template and its how-to guide no longer promise that
generate-iacwill fill in missing domain rows for you. It never did: it offers to create an index when you have none, and it reads the one you already have. Both places now say so, and the guide tells you to add the row yourself.
- The governance-index template and its how-to guide no longer promise that
- Well-architected reviews now route data/ML, GenAI/agentic, and serverless workloads only through their supported reference material.
- You can now record whether a direction's visual target was ever confirmed, and tell that apart from never having asked. A
visual_targetkey on the direction artifact holds one ofnone,unconfirmed, orconfirmed, andconvergewrites it every time it runs, so the answer is there without you remembering to add it. Nothing reads the field and nothing is gated on it: it is a record you can act on when you want to, and ignore when you do not.
- You can now record whether a direction's visual target was ever confirmed, and tell that apart from never having asked. A
- Work-loop can now prove a current branch is fresh before it tries to write Git metadata. If the branch is stale, it still stops: environments that can prepare the update ask before updating, and locked-down environments tell you to refresh the branch separately.
- Renaming an intent no longer risks silently handing its old number to a different intent later. A retired filename now leaves a tombstone behind, and the number allocator counts tombstones alongside live intents, so a retired number stays out of circulation for as long as its tombstone stands.
- Adding a component or section to a surface that already has an aesthetic direction no longer restarts the vibe conversation. The
inheritroute now scopes the new element against the direction's existing goals and axis commitments, which is what its route table always promised.
- Adding a component or section to a surface that already has an aesthetic direction no longer restarts the vibe conversation. The
- Ask what is actually true about a codebase before changing it. Index the repository once, then ask what calls a symbol, what a change would break, or how the system is organised — answered from a resolved call graph rather than a text search.
- Answers carry the index's own limits. The unresolved-reference count, the truncated-row count, and the traversal horizon are reported rather than rounded away, so a blast radius reads as a floor instead of a total.
- Frontend builds now stop on upstream design gaps instead of filling them from a fallback, local premise, or category habit. When a resolved direction is missing the needed taxonomy, or a taxonomy records a domain as unresolved, the run holds only that axis and routes it back to the recorded owner or operation.
- Standalone visual work now has a clear admission rule: it is allowed only when there is no applicable design artifact, no incumbent system, and no upstream authority left to complete. That keeps greenfield work moving without turning unfinished design decisions into implementation choices.
- Design artifacts now tell downstream builders who owns every unresolved domain and which operation supplies it, so “unresolved” routes work back upstream instead of inviting a consumer to invent a value.
- The design thread now makes
design-systemconditional, not merely optional. Run it when a direction exists and neither a completed design system nor a coherent incumbent system supplies every concrete value the surface needs; skip it when an incumbent system already covers the work.