Skip to content

skillx.release/v2: kit provenance (provider/origin) to allow @agentkit foundation releases #100

Open

Description

@mrgoonie

Problem

AgentKit foundation skills cannot be hosted on SkillX under their kit identity @agentkit/<x>. #88 gap 4(a) needs that. In the meantime, #99 publishes them as @bestagentkits/<x>. Allowing @agentkit/* needs a new signed manifest version. A server-side exception alone does not work:

  1. The signed contract skillx.release/v1 treats every release as provider skillx. packages/contracts/src/release-manifest.ts (validateIdentityField) calls checkPublisher(identity, "skillx"), which refuses the reserved publisher agentkit. The golden vector packages/contracts/src/fixtures/release-manifest-v1.json includes an @agentkit/review-guardrails manifest that must be rejected.
  2. sourceProvenance is a closed object {repo, commit, path}, and checkFields reports any other member as unknown_field. Adding provider or origin to v1 would make every existing verifier reject the manifest. That includes skillx-sh 0.5.0 on npm and the AgentKit Go client.
  3. AgentKit (bestagentkits/agentkit, origin/dev) deliberately refuses SkillX releases of @agentkit/* (apps/cli/internal/runtime/skillxsource/manifest.go:116, resolve.go:69). It always computes SkillX trust with provider skillx (resolve.go:249-255), and it references SkillX foundations as skillx:<handle>/<name> (personalkit/skillx_foundation.go:82). Separately, skillx_foundation.go:85 sets Origin: remote-signed for SkillX bases, which disagrees with skilltree/identity.go:131 (origin is only for provider kit) and should be checked on the AgentKit side.

Proposal

Add a skillx.release/v2 manifest with explicit source provenance provider (skillx | kit) and, for kits, origin. Under v2, @agentkit/* and ak-/ak: slugs are valid only with provider kit. It must never yield remote-signed/signed-kit trust unless the kit signature is verified (the same rule as #95 and trustOf).

This change has to land in several places together:

  • @skillx/contracts: the v2 schema, its verifier, and new golden vectors (v1 stays unchanged and still verifies).
  • Release ingest: allow @agentkit/* only with a key scoped to releases:publish:@agentkit, an active admin-provisioned agentkit publisher, and provider kit.
  • The CLI and MCP readers.
  • The AgentKit Go skillxsource verifier, so it accepts v2 kit releases.

Afterwards, re-publish or alias the @bestagentkits/<x> foundations.

Refs #88 #99

Metadata

Metadata

Assignees

Labels

ai-handleFound during automated rundonePR opened

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions