This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryUpdates Files changed, Surface changes, and NEW across a mixed release.
Full changelog
Closes the fourth and final finding from the v0.15.0 cold-adopter Phase 1
dogfood: execute_skill was the only skill_* MCP tool taking
skill_name; the other four (skill_read, skill_metadata, skill_status,
skill_write) all take name. The outlier was historical — execute_skill
needed skill_name to disambiguate from source in the inline-execute
mode — but to a cold adopter hand-wiring JSON-RPC, the inconsistency was
a papercut on every call.
Per Perry signoff (thread 75abc8c0): name is canonical going forward;
skill_name is a silent back-compat alias. No tier-3 advisory, no
deprecation warn. Three arguments for name-canonical:
- Less drift — 4 of 5
skill_*tools already usename. Aligning one
outlier is cheaper than migrating four. - The
sourcedisambiguation argument doesn't generalize — other tools
don't have a sibling kwarg that could collide. - Tool name carries context —
skill_read({name})is unambiguous because
the tool name says skill; the kwarg need not repeat it.
Surface changes
execute_skillMCP tool acceptsnameas canonical;skill_nameis
accepted as a silent alias. If both are supplied with different values,
the call is rejected as ambiguous. Matching values pass through.inputSchemadeclares both kwargs, with theskill_namedescription
explicitly flagging it as a back-compat alias.execute_skill(...)function-call grammar (in-skill,src/parser.ts)
accepts eithername=orskill_name=. Parser-time ambiguity check
mirrors the MCP-wire path.dispatchExecuteSkillIntercept(in-skill$ execute_skilldispatch,
src/composition.ts) accepts either kwarg.- Composition-reference lint extractor (
src/lint.ts) recognizes either
kwarg form when collecting skill references for the
unknown-skill-referencerule. help-content.tscanonical-shape headers updated to showname=as
the preferred form; worked examples below stay onskill_name=since
the alias works unchanged and per-example rewrites add no value.
Scope
Tightly scoped to skill_* per Perry's framing. data_* and file_*
tools have their own naming conventions; if the Phase 2 cold-adopter
dogfood surfaces analogous warts in those families, file separately.
Don't compound scope.
Tests
tests/v0.15.2-execute-skill-name-kwarg.test.ts — 14 new cases covering
MCP-wire dispatch (canonical, alias, identical-result equivalence,
ambiguity rejection, disambiguation preservation, inputSchema shape) +
function-call grammar (canonical works, alias works, conflict rejected
at parse time) + lint extractor (kwarg recognized for both shapes,
unknown-skill-reference fires correctly).
Files changed
src/mcp-server.ts—executeSkillhandler + inputSchema.src/parser.ts— function-call kwarg alias.src/composition.ts— in-skill$ execute_skilldispatch.src/lint.ts— composition-reference regex extended.src/help-content.ts— canonical-shape headers updated.tests/v0.15.2-execute-skill-name-kwarg.test.ts(NEW).tests/dogfood-t7.test.ts— version assertion.package.json— version 0.15.1 → 0.15.2.CHANGELOG.md— this entry.
Breaking Changes
- Argument `skill_name` in `execute_skill` is deprecated; canonical argument name is now `name`. Providing both with different values causes rejection as ambiguous.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Skillscript
All releases →Related context
Related tools
Earlier breaking changes
- v0.35.0 Editing `# Deadline:` on an approved skill drops it to Draft (signature invalidates).
Beta — feedback welcome: [email protected]