Repository navigation
Conversation
… releases
Kit releases carry a closed provenance member ({provider: kit, origin})
and are signed as skillx.release/v2; every other release stays v1, so
existing v1 verifiers keep working. @agentkit/* is accepted only with
provider kit, under a releases:publish:@agentkit key of the active
agentkit publisher. The registry signature never yields signed-kit
trust: releaseTrust grants it only after a verified kit signature.
Adds v2 golden vectors, ingest and CLI (--kit-origin) support.
Refs #100
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nti6zFrfo6zR7enh3JrDQy
Covers the v2 provenance member, kit release publishing, the --kit-origin flag and the reserved @agentkit namespace on the publisher docs page. Refs #100 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nti6zFrfo6zR7enh3JrDQy
…rigin changes on replay releaseTrust now takes the releaseDigest whose kit signature the caller verified, so a verification of another tree cannot grant signed-kit. A kit republish with the same tree but a different origin is 409 instead of a silent success. The stored manifest_schema_version comes from the signed manifest. Kit request parsing and the tar read move into their own modules to keep files under 200 lines, and the CLI reuses KIT_ORIGINS from @skillx/skill-tree. Refs #100 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nti6zFrfo6zR7enh3JrDQy
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #100. Refs #88, #99, #98, bestagentkits/agentkit#2623.
Summary
@skillx/contractsskillx.release/v2manifest. It is v1 plus a required, closedprovenancemember:{provider: "skillx"}or{provider: "kit", origin: "remote-signed" | "local-dev"}.@agentkit/*requireskit, andkitrequires@agentkit/*. A v2skillxslug must not use theak-alias.release-manifest-v1.jsonis byte-for-byte the same and still verifies.fixtures/release-manifest-v2.json(sha256ab70849b…d259) cover valid manifests, tampering, downgrade and upgrade, and non-canonical encoding.releaseTrust(manifest, {kitVerifiedReleaseDigest})returnssigned-kitonly fororigin: remote-signed, and only when the caller verified the kit signature of the tree with thatreleaseDigest. A registry signature always giveslocal-unverified.@agentkit/*is accepted only when all of these hold:provenance.provider = "kit";releases:publish:@agentkit;agentkitpublisher.@agentkit/*without kit provenance is still 403identity.reserved_publisher, decided before authorization. Kit provenance on any other publisher is 400identity.invalid.originreturns 409.get_releasework unchanged. Release-read revalidates stored manifests with the v2-aware validator. The new tests check that a signed release status verifies against a v2 manifest.skillx release publish --kit-origin <remote-signed|local-dev>.docs/api-reference.md,docs/cli-reference.md,docs/system-architecture.md,CLAUDE.md, and the public/docs/publisherspage.Review
An isolated code review found no way for a non-kit or unauthorized caller to publish
@agentkit. These follow-ups from the review are fixed in 6d54ed2:KIT_ORIGINSis no longer duplicated in the CLI.originafter authorization, and the release status of a v2 manifest.Left as is, with the evidence:
@agentkit/ak-<x>stays publishable. It followskitIdentityin@skillx/skill-tree, which maps kit directoryak-<x>to@agentkit/<x>, and the shared rulecheckReservedAliasallowsak-slugs for@agentkit.Test plan
pnpm -r run typecheck: cleanpnpm test: 101 files, 2107 passed, 3 skippedrelease-vectors.test.ts(v1) still matches the committed file;release-vectors-v2.test.tsmatches the new one.Follow-up
After deploy, the foundations can be republished as
@agentkit/<slug>with--kit-origin remote-signedand areleases:publish:@agentkitkey, instead of@bestagentkits/<x>(#99). The AgentKit verifier is in a separate PR on bestagentkits/agentkit (#2623).Generated by Claude Code