Skip to content

feat: Adding "skill" server adapter in spec and engine#119

Merged
eskenazit merged 13 commits intomainfrom
agent-skills-part-2
Mar 12, 2026
Merged

feat: Adding "skill" server adapter in spec and engine#119
eskenazit merged 13 commits intomainfrom
agent-skills-part-2

Conversation

@jlouvel
Copy link
Contributor

@jlouvel jlouvel commented Mar 10, 2026

Introduces the skill server adapter, which exposes one or more AI agent skill definitions over HTTP, making them discoverable and downloadable by agents and tooling.

Spec layer:

  • ExposedSkillSpec — skill definition (name, description, tools, location, metadata, compatibility flags)
  • SkillToolSpec / SkillToolFromSpec — tool declarations (derived from capability actions or standalone instructions)
  • SkillServerSpec — groups skills under a shared base path and port
  • ServerSpec wired to accept skill adapter type

Engine layer:

  • SkillServerAdapter — wires Restlet Router + Server with five routes and starts the HTTP listener
  • SkillServerResource (abstract) — shared base with path-traversal validation, MetadataService-based MIME detection, and a shared ObjectMapper
  • SkillCatalogResourceGET /skills
  • SkillDetailResourceGET /skills/{name}
  • SkillContentsResourceGET /skills/{name}/contents
  • SkillFileResourceGET /skills/{name}/files/{file} (streaming via FileRepresentation)
  • SkillDownloadResourceGET /skills/{name}/download (ZIP via OutputRepresentation)

All JSON responses use JacksonRepresentation<ObjectNode> (no in-memory string serialization).

Schema: ExposesSkill, ExposedSkill, SkillTool added to
capability-schema.json.

Docs: §§3.5.9–3.5.12 added to naftiko-specification-v0.5.md;
skill-adapter.yml example added.

Tests: 27 new tests across CapabilitySkillIntegrationTest,
SkillServerSpecRoundTripTest, and SkillToolSpecDeserializationTest.

@eskenazit
Copy link
Contributor

This is confusing ^^' We have a Notion specification page, a PR with the wiki specification with request fir change and a PR with an implentation fo the spec. I do not know against which specification I am supposed to use to validate this PR... Let us discuss process before moving on =)

@jlouvel
Copy link
Contributor Author

jlouvel commented Mar 10, 2026

The wiki PR was created before the work on this implementation started, hence the disconnect. I will refresh it.

For the scope of this PR, the included spec (agent-skills-support-proposal.md) is exactly the same as the spec in Notion that you reviewed. So this implementation is consistent with it.

eskenazit
eskenazit previously approved these changes Mar 11, 2026
Copy link
Contributor

@eskenazit eskenazit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@eskenazit
Copy link
Contributor

@jlouvel I cannot rebase and merge due to conflicts, I let you handle that =)

@jlouvel
Copy link
Contributor Author

jlouvel commented Mar 11, 2026

@eskenazit Ok, I think I resolve the conflicts properly. Note that I moved the specification-v0.4.md and specification-v0.5.md files into the Wiki folder and deleted the Specs folder for consistency (we have Specification.md published in the wiki already). Could you double check that I have your latest version there?

Also, when this is merged, we should sync the published wiki page so it has v0.5 as well:
https://github.com/naftiko/framework/wiki/Specification

@eskenazit
Copy link
Contributor

@jlouvel I disagree we should sync when it is merged. The wiki should reflect the latest release, so we should update the wiki when we release the 0.5, should we not ?

@jlouvel
Copy link
Contributor Author

jlouvel commented Mar 11, 2026

@eskenazit Yes, you are right. What I wanted to convey is the goal of this Wiki folder to represent the intended state of the published wiki. But that needs to respect the release life cycle

@jlouvel jlouvel force-pushed the agent-skills-part-2 branch from f37b025 to f2cca52 Compare March 11, 2026 13:50
@eskenazit
Copy link
Contributor

@jlouvel I think I fixed the missing skills part, I now let you fix conflicts created by the rename of the schema =)

@jlouvel jlouvel force-pushed the agent-skills-part-2 branch from 66283fe to d514c3d Compare March 11, 2026 18:48
@jlouvel
Copy link
Contributor Author

jlouvel commented Mar 11, 2026

Thanks @eskenazit ! I've rebased and updated all the Naftiko YAML files to point to naftiko-schema.json

Copy link
Contributor

@eskenazit eskenazit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@eskenazit eskenazit merged commit 56cefa1 into main Mar 12, 2026
4 checks passed
@eskenazit eskenazit deleted the agent-skills-part-2 branch March 12, 2026 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants