Skip to content

[FEATURE] Support package namespaces #739

@natoverse

Description

@natoverse

Is your feature request related to a problem? Please describe.
As an example, I have a project that looks something like this

  • project, with skills
  • apm dependency 1
  • apm dependency 2
    • transitive dependency 1
    • transitive dependency 2

After apm install, the skills folder flattens everything, e.g.,

  • project skills
  • apm dependency 1
  • apm dependency 2
  • transitive dependecy 1
  • transitive dependency 2

This is of course not APM's fault, it's the design of the .github folder. However, it leads to two distinct problems:

  1. It quickly becomes very difficult to understand where various skills came from, particularly differentiating project skills from installed dep skills
  2. Whilst developing a project, it's easy for the agent to update the installed skills because they are part of the "codebase" rather than a gitignored dep

Describe the solution you'd like
Using namespaces could at least help solve problem #1. If the package manifest defined a namespace that was applied (presumably sometihng like namespace.skillname/SKILL.md) then it would be clear where each skill originated. This would also allow for easier copilot instructions indicating not to edit non-project skill prompts unless expressly asked to do so.

A secondary/related solution could be to have apm install add the individual dep skill folders to .gitignore along with apm_modules. This may not be desirable in all cases though, so would likely need to be optional.

Describe alternatives you've considered
Hand-adding a namespace to my skill names is how I'm handling multiple skill repositories in our org, but that doesn't work with third-party skills.

Additional context
Add any other context or screenshots about the feature request here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/multi-targetMulti-target deploy spec, target directory creation, agent surface routing.area/package-authoringapm pack/unpack, plugin authoring, vendoring guidance, bundle format.enhancementDeprecated: use type/feature. Kept for issue history; will be removed in milestone 0.10.0.needs-triageDeprecated: use status/needs-triage. Kept for issue history; will be removed in milestone 0.10.0.status/needs-designDirection approved, design discussion required before code.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).theme/portabilityOne manifest, every target. Multi-target deploy, marketplace, packaging, install.type/featureNew capability, new flag, new primitive.

    Type

    No type

    Projects

    Status

    In Progress

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions