You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
skillx.release/v2: kit provenance (provider/origin) to allow @agentkit foundation releases #100
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:
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.
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.
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.
Activity
docs(releases): document skillx.release/v2 kit provenance
refactor(releases): bind kit trust to the release digest and refuse o…