This release keeps dependencies and maintenance posture current for teams operating this tool.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryMinor fixes and improvements.
Full changelog
Docs-only ring. Two artifact updates bundled — the playbook gains
two new sections covering v0.17.0's adopter surface, and the language
reference resyncs from its canonical AMP document tree. No code, no
language-surface changes.
Adopter playbook
Closes two docs gaps v0.17.0's CHANGELOG flagged as "forthcoming." Per
feedback_playbook_is_timeless — playbook describes what IS, not
version history; the new sections are framed in present-state language
with no v0.17.0 retrospective parentheticals.
1. New Identity propagation — for multi-agent hosts section
Adopter-facing docs for v0.17.0's mcpCallerIdentityHeader config —
the surface that previously had only a CHANGELOG entry. Covers:
- Lead with the framing memory: skip this section if you're
single-user / single-tenant. The v0.16.8 default (SkillStore-side
author capture) handles those cases without configuration. - The MCP boundary's structural gap: JSON-RPC carries no standard
caller-identity field, so multi-agent hosts need a convention. - Opt-in config example (
dashboard.mcpCallerIdentityHeader: "X-Agent-Id")
with the inbound request header shape adopters need to inject. - Trust model: bilateral — host authenticates, runtime trusts header
attestation. Not for untrusted-network deployments. - Inbound vs outbound
X-Agent-Id— same name, two layers, two
semantics, bridge meets atSkillMeta.author. Critical setuid-hazard
warning: never forward inbound→outbound; outbound is always derived
from author at dispatch. - Verification smoke test (cURL + jq pattern).
2. New Authoring posture section
Three authoring paths surveyed, with the direct-write Draft→promote
pattern documented (closes Perry's Gap 2 doc-side per substrate-author's
a4826b2a clarification):
- CLI / dashboard / direct programmatic API → SkillStore default
author capture. - MCP
skill_writesingle-tenant → defaults apply, skip the
multi-agent section. - MCP
skill_writemulti-agent → see new identity-propagation section.
Plus the direct-write authoring path (write substrate record
directly without going through skill_write):
- Write with
# Status: Draft(capturesSkillMeta.authorfrom
substrate writer identity). skill_status({new_state: "Approved"})stamps the hash token and
preserves the captured author.
Write-Approved-without-stamp fails at execute time with
ApprovalRejectedError — gotcha worth calling out so adopters using
substrate-direct authoring don't hit the wall Perry hit in dogfood.
Language reference
Resynced docs/language-reference.md from the canonical AMP document
tree (skillscript-language-reference, 15 sections). Picks up content
Perry authored / refined since the last local render.
|contains:filter semantics — full type-aware resolution
branches (list, JSON-string-list, string, fallback); symmetry with
in/not inoperators.- Triple-quote multi-line strings —
"""..."""literal type with
textwrap.dedentsemantics; dedent runs before${VAR}
interpolation; literal type any kwarg accepts (not emit-specific). - Identity semantics, two layers:
inline()— host-skill identity (compile-time paste, no runtime
boundary). Bringing code in via inline is an act of taking
responsibility for it. (Spec-aspirational for procedural inline;
current impl handles data-typed only — procedural inline still
throws at runtime persrc/runtime.ts:692.)execute_skill— called-skill author identity (SkillMeta.author).
Each skill is its own identity unit; dispatcher does not loan its
identity to the callee. Cross-author delegation deferred.
- Third principle for skill authors — "Comparison is orchestration;
computation goes in tools." Includes the shell+jq universal
computation escape pattern, the stopping rule, and common shells of
the pattern (jq for aggregation, awk/sed for fields, date/python for
date math). RuntimeCapabilitiesConformanceauto-coverage gate — capability
flags spanning multiple layers (supports_identity_propagation) gate
via adopter-supplied Level-1 + Level-2 probes; declaring the flag
true without probes fails before runtime accepts the claim.- Restructured "Not yet implemented, but planned" section —
consolidates pipe-filter extensions, removes shipped items.
Spec/impl gap flagged
The language reference describes inline() as "compile-time paste
makes the inlined ops part of the host body" — applies cleanly for
data skills today, but procedural-skill inline still throws
MissingSkillReferenceError at runtime. The spec is aspirational here;
runtime-procedural inline is a future-ring code item.
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]