Skip to content

[Phase 3] Personal kits, installer, lockfile and multi-device sync #35

Closed

Description

@mrgoonie

Depends on

Objective

Turn SkillX into a practical package manager before paid commerce.

Scope

  • Collection CRUD/revisions.
  • Resolver/lockfile.
  • Generic SkillX installer for skills.
  • Local receipts/ownership.
  • Update/remove/conflict handling.
  • Multi-device locked sync.
  • Local MCP.

Implementation tasks

  • Collection create/update/clone/delete.
  • Collection visibility and immutable revisions.
  • Add/remove package members.
  • Resolve compatibility and dependencies.
  • Generate lock state with exact version/digest.
  • Implement install plan.
  • Fetch/verify artifact.
  • Implement first harness adapter.
  • Implement second harness adapter only after first is stable.
  • Write local install receipts.
  • Track owned paths/registrations.
  • Add update planning/apply.
  • Add uninstall with ownership proof.
  • Preserve locally modified/unknown files.
  • Ref-count shared package requirements across kits.
  • Implement skillx sync --locked.
  • Exclude secrets/local absolute paths from sync.
  • Add local stdio MCP inspect/plan/apply tools.
  • Add interruption/retry tests.

Acceptance criteria

  • Machine B restores exact locked digests from machine A's kit revision.
  • Secrets are not synced.
  • Update/remove does not silently destroy user content.
  • Uninstalling one kit does not remove packages still needed by another.

Milestone: public alpha.

Activity

  1. zuey-cloud-harness commented on Oct 11, 2026

    @zuey-cloud-harness

    Child slices: #55 personal-kit lineage, structured overlays and conflict-safe B0/U0/B1 rebase; #56 reviewed private patches from local sessions. AgentKit local counterparts https://github.com/bestagentkits/agentkit/issues/2278 (composer and atomic apply), https://github.com/bestagentkits/agentkit/issues/2281 (consented evolution), https://github.com/bestagentkits/agentkit/issues/2276 (owned projections). Require digest-pinned lock/revisions, CAS, permissions/dependency/semantic conflict blocking, rollback, no secret or absolute path sync, and paid/private foundation license preservation. Keep SkillX generic installer separately from AgentKit Go lifecycle. Umbrella https://github.com/bestagentkits/agentkit/issues/2274.

  2. self-assigned this
    on Oct 19, 2026
  3. added and removed on Oct 19, 2026
  4. mrgoonie commented on Oct 20, 2026

    @mrgoonie
    ContributorAuthor

    Production receipt (2026-10-20)

    Delivered by

    Smoke A → B (production registry, CLI built from main)

    • Isolation. Two machines with fresh temp roots. Every home, config and cache variable the CLI reads was set to the machine's root: HOME, USERPROFILE, APPDATA, LOCALAPPDATA, XDG_*, SKILLX_HOME, CLAUDE_CONFIG_DIR, CODEX_HOME, TEMP. No real user state was touched.
    • Signing key. The registry key was trusted via trusted-keys.json. Key id 993cd14a011f7b76 was cross-checked against /api/v1/keys.
    • Machine A.
      • Created an unlisted collection smoke-2610200943 with @bestagentkits/plan@0.1.0 (API).
      • Installed it for Claude Code: exit 0, receipt written.
      • Lockfile check: 0 absolute paths and 0 secret matches.
    • Machine B.
      • Copied only the lockfile and ran sync --locked: exit 0.
      • 23/23 installed file hashes are identical to A's.
      • lockDigest sha256:07c9fe3c… is equal on both machines, and the lock file is byte-identical.
    • Update and uninstall (A).
      • update was a no-op: lock and receipt unchanged.
      • uninstall removed 22 files, kept the locally modified file (keptModified) and the unknown file (keptUnknown), and left owners empty.
    • Cleanup. The smoke collection was deleted (200, then 404).

    Full receipts (secrets redacted) are in plans/reports/smoke-261020-prod-personal-kits-install.md in the delivery workspace.

    Open

    • The CLI ships to npm when the next release-please PR merges.
    • Follow-up: skillx update in human mode prints nothing when nothing is installed. It is low priority and tracked separately.
  5. added
    shippedMerged/deployed
    and removed on Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestshippedMerged/deployed

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions