Skip to content

Consider delegating the packaging layer to microsoft/apm #518

Description

@vlsi

What should happen

Prototype APM as the packaging layer behind the existing /magpie-setup entry point. Keep /magpie-setup as the guided wrapper, but let it call apm install for fetch, lock, deploy, and namespacing instead of the bespoke snapshot-and-symlink machinery.

In scope (APM would subsume)

  • Snapshot fetch and the two lock files
  • Multi-target deploy and magpie- namespacing
  • Family opt-in (maps onto --skill / sub-packages; splitting into separate packages is not required)
  • Drift detection

Why

setup reimplements most of a package manager by hand: a committed pin (.apache-magpie.lock), a per-machine lock, a gitignored snapshot (.apache-magpie/), multi-target deploy through a canonical .agents/skills/ plus relay symlinks, magpie- namespacing, version pinning, and drift detection. [microsoft/apm](https://github.com/microsoft/apm) already provides all of that: apm.yml + content-hashed apm.lock.yaml, native deploy to eight agents (Claude, Copilot, Cursor, Codex, Gemini, Windsurf, Kiro, OpenCode), git-ref/tag pinning, and per-skill selection (apm install … --skill <name>). Carrying our own resolver may be a cost we do not need.

Which layer

Other / unsure

Boundary conditions (optional)

No response

Out of scope (optional)

  • Secure-agent setup (sandbox, clean-env wrapper, pinned tools)
  • post-checkout hook and worktree propagation
  • Agentic overrides: the protocol is plain text in each SKILL.md, and override files live in the adopter's own .apache-magpie-overrides/, which apm install never touches

References (optional)

Metadata

Metadata

Assignees

No one assigned

    Labels

    capability:platformFramework / agent substrate skills (install, verify, doctor, override, status, setup bootstrap)enhancementNew feature or requestfamily:setupsetup-* skills

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions