Skip to content

v3.14.5

Choose a tag to compare

@mrbro-bot mrbro-bot released this 25 Aug 06:25
· 237 commits to main since this release
7eedd18

What's new

A small documentation-heavy release: one scoring fix in the compound workflow's related-docs step, plus four docs that trace a costly false assumption from discovery to correction.

Bug Fixes

skills: derive the overlap score from the dimension count (#870)

The compound workflow's related-docs step scores how similar a proposed learning is to an existing one across five named dimensions, and that score decides whether a session writes a new document or updates an existing one. The scoring logic got this decision wrong four times in one session, in two distinct ways: the score was judged as a holistic read of "how related do these feel" rather than a literal count of matched dimensions, letting a report score two documents as near-duplicates while recommending a new document be written in the same breath; and the document search couldn't find work clustered under a shared module, because it took its search term from keywords in the problem description rather than from the actual curated module identifiers in use. Both are fixed: the dimension count now reads directly into the score, with the count stated in the returned assessment -- when the two disagree, the count wins -- and the module search now enumerates the real module values in use and picks the closest match. A companion fix also separates the score-follows-count and recommendation-follows-score checks, which a prior read had collapsed into a single rule, obscuring which one had actually failed.

Documentation

Four documentation changes landed, spanning solution captures and plan corrections that all trace back to one costly false premise.

Two solution docs record the lesson from a session where a plan was designed around an assumption that was never tested. The Claude Code plugin bundle was assumed unable to carry an executable, so an MCP server, a runtime version floor bump, a launch pin, and a new dependency were designed, reviewed by six personas, and merged as a plan -- all before a single local install proved the premise false. A marketplace install actually copies the entire plugin directory, including files the manifest never declares, with the executable bit intact and bin/ already on the Bash tool's PATH; no transport is needed to reach a bundled executable (#869). That doc captures the general lesson -- a working capability that has never had its cause isolated hasn't proven anything; remove the suspected cause and re-run to confirm -- and links it to an existing five-week-old rule about probing unproven runtime channels before designing around them. A second doc records the specific anchor convention now required in every fenced script block: skills that invoked helper scripts with bare relative paths resolved against the consumer's working directory rather than the skill's install directory, breaking on every harness. The fix is three rules: every block (not just the file) must (re)set the anchor, the assignment must use a form that terminates correctly even when a host flattens a fenced block to one line, and the anchor stays model-filled rather than sourced from a host variable, since a substitution offered by one harness silently expands to nothing on the others (#866).

The two plan documents in this release close out that same story. The MCP server plan is marked superseded, since its central assumption -- that a Claude Code bundle can't carry an executable -- was never measured and turned out to be false; the real constraint is entry-point scope, since the full CLI can't be bundled (a jsonc-parser UMD branch requires runtime resolution the bundler can't do statically), but a narrower entry importing only the review-artifact schema builds to a self-contained file. The plan stays in place behind a status banner rather than being deleted, pointing at the measurements that replaced it (#867). In its place, a new plan describes building a review-artifact validator that ships as an in-bundle executable, with every claim it depends on -- the install copies undeclared directories, the executable bit survives, the entry is reachable as a bare shell command, confirmed via negative control -- measured against a real install rather than assumed from documentation (#868). A follow-up correction to that plan notes that the claimed containment helper imports don't actually exist yet as exports; extracting resolveReviewArtifactPath, hasParentDirectoryTraversal, and pathContainsSymlink from src/cli.ts is a prerequisite the file list should call out rather than assume.

Compare

v3.14.4...v3.14.5