Skip to content

Support skill detection in APM-installed projects (.apm/ convention) #400

Description

@rrazvd

Problem

When using APM (Agent Package Manager) to manage skills, waza run fails with workspace detection:

no eval.yaml specified and workspace detection failed: no skills detected in workspace

This happens because APM installs compiled skills to a nested path:

skills/
  my-skill/
    apm.yml               ← source definition
    .apm/
      skills/
        my-skill/
          SKILL.md        ← compiled output (what agents actually receive)

But waza's workspace detection looks for SKILL.md one level deep:

skills/
  my-skill/
    SKILL.md              ← waza expects here

Since waza ignores dotfolders (.apm), the SKILL.md is never found.

Context

.apm/ is APM's standard output directory for compiled primitives — analogous to node_modules/ for npm or .venv/ for Python. Every skill installed or compiled via APM places its resolved SKILL.md at:

<skill-dir>/.apm/skills/<skill-name>/SKILL.md

This is the canonical file that agent clients (Copilot, Claude, Cursor, etc.) receive — not a deployment-specific artifact.

Expected Behavior

waza run (and workspace detection in general) should recognize skills installed via APM, either by:

  1. Traversing .apm/skills/ within each skill directory as a known convention, or
  2. Adding a paths.skillFile config option to .waza.yaml that lets projects specify the relative path to the SKILL.md within each skill folder (e.g., .apm/skills/{name}/SKILL.md), or
  3. Documenting an official integration path for APM-managed workspaces.

Current Workaround

Creating symlinks after apm install:

for skill_dir in skills/*/; do
  skill_name=$(basename "$skill_dir")
  ln -s ".apm/skills/${skill_name}/SKILL.md" "${skill_dir}SKILL.md"
done

This works but is fragile (breaks on Windows, requires gitignore hygiene, not a first-class integration).

Environment

  • waza version: x.x.x
  • APM version: 0.20.0
  • OS: macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcoding-agentGood candidate for coding-agent implementationepic:go-cliE1: Go CLI Foundationgo:yesReady to implementneeds-author-feedbackNeeds additional details from issue author to validate or implementrelease:backlogNot yet targetedsquad:copilotAssigned to @copilot (Coding Agent) for autonomous worktype:bugSomething broken

    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