feat(registry): reproducible AgentKit foundation publishing and pinned whole-tree artifact API
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 18/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- cloud, github, github-actions, typescript
調査の方向性
Start by reading the generic package contract at packages/contracts/src/package-manifest.ts and the linked SkillX #34 and AgentKit #2275 contracts; then inspect the listed identity, schema, publishing, scanning, and import/scan route files. Compare those paths with the AgentKit skill directories, kit.yaml, and the CLI package and release builder. Done means a verified deterministic whole-tree package, immutable authenticated publishing and pinned resolution, plus a standalone AgentKit example published manually and through CI with matching digests and the required negative tests.
索引モデルが issue の本文から書いたものです。
説明
Parent / cross-repo
Implementation slice of SkillX #34 and #21, tracked by SkillX #31; counterpart AgentKit #2274 and design prerequisite AgentKit #2275. Keep #34 as contract owner for generic registry, not a second registry implementation.
Objective
Create a first-class, trusted AgentKit publisher integration using SkillX's generic immutable whole-directory package/release model: export one self-contained AK foundation skill from the canonical AK repo and publish it manually and through scoped CI with exactly reproducible bytes; expose safe pinned artifact resolution for AgentKit consumers. Do not port AK's installer to TypeScript.
Start with real code
- SkillX
packages/contracts/src/package-manifest.ts,packages/skill-identity,apps/web/app/lib/db/registry-schema.ts,packages/cli/src/commands/publish.ts,apps/web/app/lib/security/content-scanner.ts, Github import/scan routes. Audit existing implementation vs phase-2 roadmap #34. - AK
kits/{core,engineer,marketing}/skills,kit.yaml, CLI package/release builder and exported resource closure. - Check exact upstream HEAD, doc ownership and current storage/migrations before designing migrations. Current
skillx useemitsSKILL.mdtext/metadata, not installable nested packages.
Scope / deliverables
- Define deterministic package closure: full recursive file manifest for
SKILL.md,references/,scripts/,assets/,modules/, nested arbitrary regular files plus declared runtime/deps; reject symlink, special file, hardlink, traversal, archive bombs, unsafe modes, secrets and overlimit resources with stable errors. Explicit policy for tests/build artefacts/metadata. - Reuse
skillx.package/v1package identity (@agentkit/ak-...), exact semver/release state. Separate source identity (Git repo+path+commit) from namespace ownership and immutable artifact digest. Release version cannot be overwritten with different bytes. - Stable deterministic pack process (canonical relative paths, file ordering, timestamps, modes, UTF-8/machine-independent canonical manifest; no platform-dependent hash drift). Per-file SHA-256, archive SHA-256, SBOM/dependency metadata where applicable. Publish idempotently.
- Secure R2/artifact distribution through explicit versioned metadata + entitlement aware authorization + short-lived URL/stream and integrity checks; no link construction or redirects that bypass auth. Cache-policy and revocation/yank semantics documented for offline local digests.
- Publisher auth: scoped CI credential or OIDC trusted publish (where supported), namespace ownership, minimal permissions, no secrets in build output/README. Sign/attest artifact provenance if approved contract; do not block existing skill discovery unnecessarily.
- AK mapping: publish one small truly standalone foundation skill first, manually and through CI; reject bundles missing dependencies/hooks/sidecars rather than misrepresenting them as runnable. Curated kit export only after closure verified and SkillX #36.
- Stable read-only
inspect/resolve/downloadAPI contract supporting exact release+digest and compatibility metadata for Go consumer. Existingskillx useremains backwards compatible, labeled discovery-only when incomplete; no runtime execution during resolve. - Security release lifecycle: draft/quarantine/review/publish/yank, publisher key rotation, replay controls and revoked/compromised source handling.
Required negative/repro tests
- 94-file-style nested resources preserved; manifests/digests identical from clean builds; same version with changed bytes rejected; cross-runtime archive hash consistency.
- Zip-slip / tar traversal, symlink pointing out, case/Unicode collision, Windows reserved paths, oversized/duplicate entries, malicious executable bit, leaked credential fixtures, malformed metadata, dependency closure missing.
- Auth bypass on private/paid packages, forged namespace, CI publish token with overbroad permissions, partial upload, concurrent idempotent publish/retry, yanked/quarantined resolution.
- Manual vs CI publishing of same snapshot yields identical digest; install/read path has no implicit code execution.
Agent implementation prompt
Implement a vertical slice within Phase 2 with its existing schema/migrations and tests, not a parallel marketplace. Read SkillX instructions, #21/#31/#34 and AK #2275 contract first. Produce an explicit contract+threat model and repo-file references. First implement deterministic full-tree pack+verify, then immutable upload/resolve/auth, finally a scoped AgentKit example publisher. Preserve existing routes/CLI use/search. Keep backward compatibility and feature flags for incomplete public APIs. Every failed verification must fail closed; never curl | sh. Open focused PR(s) with exact tests, artifact digests, no mutable latest refs, migration and rollback notes. Coordinate the API shape with the AgentKit SourceProvider issue before finalizing.
Non-goals
SkillX universal runtime installer, AK native installer rewrite, auto-activation of hooks/scripts, user personalization, paid creator settlement.
Acceptance
- Generic #34 contracts reused, no duplicate schema ownership.
- Complete standalone skill published to SkillX manually + CI reproducibly.
- Signed/attested publisher provenance decision documented and integrity verified.
- Pinned, entitled artifact metadata+bytes resolvable by AK without executing.
- Private/quarantined/yanked behavior and path/adversarial tests pass.
- Cross-link implementation PR and AgentKit consumer issue.
- 主要言語
- TypeScript
- スター
- 189
- フォーク
- 40
- 平均マージ
- 7時間 38分
- マージ済み PR(30日)
- 30
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nextlevelbuilder/skillx のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
nextlevelbuilder/skillx#49 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
nextlevelbuilder/skillx#28 ·
メンテナーはふだん 1 日以内に返信
-
refactor
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
nextlevelbuilder/skillx#27 ·
メンテナーはふだん 1 日以内に返信
-
Personal-kit API gaps for AgentKit kit publish/sync対応中かも @mrgoonie が 1 日前に担当しました。 オープン
nextlevelbuilder/skillx#88 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 12/100
nextlevelbuilder/skillx#81 ·
メンテナーはふだん 1 日以内に返信
nextlevelbuilder/skillx の issue をすべて見る
似ている issue
-
bnv-manager-v2: accept_invite creates the Mailcow domain admin before the commit対応中かも @myOmikron が今日担当しました。 オープンbug ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
platform:windows tool triaged wontfix
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
nicolettas-muggelbude/RechnungsFee#448 ·
メンテナーはふだん 1 日以内に返信
-
Android bug feature/error-tracking react-native team/error-tracking
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
PostHog/posthog-js#5310 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信