Skip to content

Make the agent skills installable via APM - #54

Merged
veewee merged 1 commit into
phpro:v2.xfrom
veewee:apm-package
Sep 3, 2026
Merged

Make the agent skills installable via APM#54
veewee merged 1 commit into
phpro:v2.xfrom
veewee:apm-package

Conversation

@veewee

@veewee veewee commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #53. The skills are in .agents/skills/, which agents read directly — but APM does not discover that layout in a source repo, so apm install phpro/http-tools fails:

Not a valid APM package: no apm.yml, SKILL.md, hooks, or plugin structure found in http-tools.
Ensure the package has SKILL.md (skill bundle), apm.yml + .apm/ (APM package),
or plugin.json (Claude plugin) at its root.

.agents/skills/ is APM's cross-runtime deploy target (--target agent-skills, converged in APM v0.22.0), not a source location. Its source layout is apm.yml + .apm/skills/<name>/SKILL.md.

Change

Two files, mirroring how phpro/hexagonal-skills and friends are laid out:

  • apm.yml — name, description, version
  • .apm/skills — symlink to ../.agents/skills

.agents/skills/ remains the single source of truth, so a plain checkout still works with no APM involved. The README gains a short install section.

Result

One dependency instead of six per-skill paths:

dependencies:
  apm:
    - git: git@github.com:phpro/http-tools.git
      ref: v2.x

Subsetting also becomes available:

    - git: git@github.com:phpro/http-tools.git
      ref: v2.x
      skills: [generate-http-response, test-http-integration]

Verification

Installed from this branch with APM 0.29.0 into a scratch project:

[+] veewee/http-tools #apm-package @52e33bdb
|-- 6 skill(s) integrated -> .claude/skills/

Resolves as package_type: apm_package; all 10 files deploy, references/ included. Also confirmed on both 0.14.2 and 0.29.0 that the repo root is not auto-detected without these files, so this is required rather than cosmetic.

The skills live in `.agents/skills/`, which is the cross-runtime location
agents read directly — but it is not a layout APM discovers in a source
repo. APM expects `apm.yml` + `.apm/skills/` at the package root
(`.agents/skills/` is its deploy *target*, not a source), so pointing a
dependency at this repo failed with "no apm.yml, SKILL.md, hooks, or
plugin structure found".

Adds the two files that make it a package, mirroring how our other skill
bundles are laid out:

* `apm.yml` — name, description, version
* `.apm/skills` — symlink to `../.agents/skills`

`.agents/skills/` stays the single source of truth, so a plain checkout
keeps working without APM, and one dependency now pulls all six skills:

    dependencies:
      apm:
        - git: git@github.com:phpro/http-tools.git
          ref: v2.x

Verified against APM 0.29.0: resolves as `package_type: apm_package` and
integrates 6 skills with their `references/` files intact.
@veewee
veewee merged commit ff003ae into phpro:v2.x Sep 3, 2026
4 checks passed
@veewee
veewee deleted the apm-package branch September 4, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant