Extends the Package Registry Standard with a normative Skill package
schema (§16) aligned with the open agentskills.io Agent Skills format,
and adds an optional `skills` field to `type: llm` agent configs so an
Actor can attach one or more resolved Skill packages to an agent.
SkillLoader (new) resolves each `skills` reference through the existing
cleveractors.registry client (registry:/ID:/local: schemes), mirroring
the established template package-reference resolution pattern in
cleveractors.templates.base._resolve_package_ref rather than
introducing a parallel resolution path. SkillValidator (new) checks
resolved content against the D-2 schema (name/description constraints
lifted from agentskills.io, resource path/encoding rules) and computes
a content-addressed package_id via the existing Canonicalizer.
Resolved skills are disclosed to the model in three stages, per D-4:
discovery (name+description folded into system_prompt), activation (a
synthesized `skill` tool call returns full instructions), and execution
(a further call reads a bundled resource, reusing file_read's
offset/max_chars pagination convention from ADR-2033). All registry
awareness lives in SkillLoader at the factory layer; LLMAgent only
gains a `_skills` value forwarded through its existing tool-call
context, and ToolAgent gains one new built-in tool handler — neither
imports anything from cleveractors.registry.
The `skills` field itself is documented only in ADR-2034, not mirrored
into docs/index.md, matching how ADR-2031/ADR-2032 handled their own
new LLM agent config fields (graduation into the normative spec is
deferred to a future ADR). The Skill package schema, which has no other
home, is appended as a new §16 in docs/actor-registry-standard.md
(after the original §1-15 body, with a version bump to 1.1.0) rather
than spliced into the existing §3.2 package-type table.
68 Behave scenarios cover schema validation, all three reference
schemes, loader orchestration, factory/agent integration, and the
ToolAgent skill tool (activation, resource reads, pagination, error
paths). A Robot Framework suite exercises the same flow against a real
on-disk skill file and real LocalPackageStore/PackageContentResolver
resolution end to end, mocking only the LLM API call. Coverage: 96.9%
(threshold 96.5%); full nox suite green; ASV shows no significant
performance change.
ISSUES CLOSED: #88