Skip to content

docs(readme): add 'Coming from npx skills add?' conversion block#980

Merged
danielmeppiel merged 4 commits intomainfrom
docs/readme-npx-skills-conversion
Apr 27, 2026
Merged

docs(readme): add 'Coming from npx skills add?' conversion block#980
danielmeppiel merged 4 commits intomainfrom
docs/readme-npx-skills-conversion

Conversation

@danielmeppiel
Copy link
Copy Markdown
Collaborator

TL;DR

Adds one ~5-line "Coming from npx skills add?" block to README.md, sitting between the git clone / apm install example and the "three promises" section -- the exact funnel moment where readers familiar with npx skills add decide whether to switch. No other content changes.

Problem (WHY)

The 0.9.4 release shipped SKILL_BUNDLE (PR #974) so that every public repo installable via npx skills add owner/repo is also installable via apm install owner/repo. That is the strongest single conversion claim APM has against the current incumbent in agent-skill installation (skills.sh / vercel-labs/skills), and it is invisible on the README -- so the conversion never happens.

Without this block, an npx skills add user reading our README sees a manifest-shaped product that looks unrelated to what they do today. The mental cost to evaluate "would this also work for me?" is high enough that most bounce.

Approach (WHAT)

A surgical edit, not a rewrite:

  • Where: between the git clone / apm install example (existing line 45) and ## The three promises (existing line 47). That is the moment a reader has just understood "what APM does" but has not yet committed to learning more.
  • Form: bold inline lead (**Coming from npx skills add?**) -- not an h3 -- so non-npx readers scroll past without losing the page narrative; npx readers self-identify in <1s.
  • Two real install commands: apm install vercel-labs/agent-skills and apm install vercel-labs/agent-skills --skill deploy-to-vercel. Both repos / skill names are real, falsifiable in 30 seconds.
  • One outbound link only: reference/package-types/#skill-bundle -- where the SKILL_BUNDLE shape, manifest, and lockfile are already documented. README's job is to convert the click; docs explain.

Implementation (HOW)

 apm install    # every agent is configured

+Coming from npx skills add? Drop-in:
+
+bash +apm install vercel-labs/agent-skills # whole bundle, like npx skills add +apm install vercel-labs/agent-skills --skill deploy-to-vercel # one skill, persisted to apm.yml +
+
+Same install gesture. You also get a manifest, lockfile, and reproducibility.
+

The three promises


9 insertions, 0 deletions. No other file touched.

## Trade-offs

- **Bold inline lead vs. h3 sub-section.** h3 would give the block more visual weight but would also register as a major page section, slowing the funnel for the ~80% of readers who don't come from `npx skills add`. The bold inline is intentionally a "side note" so it's invisible if not relevant.
- **Naming a competitor in the README.** `npx skills add` is a known surface in the agent-skills ecosystem (`skills.sh` / `agentskills.io`), and the framing is incumbent-friendly ("drop-in", "same install gesture") rather than challenger-aggressive. Lower risk than naming a different commercial product. Not naming it would mean readers who use it daily can't recognize themselves on the page.
- **Concrete repo + skill names rather than `<owner>/<repo>` placeholders.** Concrete is more compelling and verifiable; it does mean the block depends on `vercel-labs/agent-skills` continuing to exist with `deploy-to-vercel` in it. Both are stable public artifacts; the cost of a future stale claim is one README PR.

## Validation evidence

Both commands verified locally against `vercel-labs/agent-skills` immediately before this PR:

$ apm install vercel-labs/agent-skills
[+] vercel-labs/agent-skills (cached)
|-- 7 skill(s) integrated -> .github/skills/

$ apm install vercel-labs/agent-skills --skill deploy-to-vercel
[+] vercel-labs/agent-skills (cached)
|-- 1 skill(s) integrated -> .github/skills/
[*] Persisted skill subset for vercel-labs/agent-skills: [deploy-to-vercel]


Resulting `apm.yml` after the second install:
```yaml
dependencies:
  apm:
  - git: vercel-labs/agent-skills
    skills:
    - deploy-to-vercel

Resulting apm.lock.yaml:

- repo_url: vercel-labs/agent-skills
  resolved_commit: ce3e64e468f8fa09a2d075d102771838061fdac0
  package_type: skill_bundle
  skill_subset:
  - deploy-to-vercel

Every claim in the new block (drop-in install, --skill lever, persistence to apm.yml, lockfile reproducibility) is reproducible from the snippet itself.

How to test

  1. Open the rendered README on this branch.
  2. Confirm the new block sits between the git clone example and the "three promises" section.
  3. Run the two apm install commands above against APM 0.9.4 and confirm the integration counts and the apm.yml / apm.lock.yaml shape match what the block claims.

Drift / future-proofing

The block depends on vercel-labs/agent-skills continuing to publish a skill named deploy-to-vercel. If we ship a CI job that validates the README install commands against APM regularly, any drift would surface immediately. Not in scope for this PR; flagged for follow-up if the panel wants it.

Surgical insert between the apm.yml example and the three promises -- the
funnel moment where npx-skills users decide whether to switch. Names
vercel-labs/agent-skills and the real 'deploy-to-vercel' skill so the claim
is verifiable in 30 seconds. Bold inline lead (no h3) keeps the page flow
intact for non-npx readers; one outbound link defers prose to docs.

Both commands verified locally end-to-end: whole-bundle install integrates
7 skills; --skill deploy-to-vercel integrates 1 and persists the subset
into apm.yml + apm.lock.yaml's skill_subset.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 27, 2026 07:30
@danielmeppiel danielmeppiel added this to the 0.9.5 milestone Apr 27, 2026
@danielmeppiel danielmeppiel added type/docs Documentation change (prose, examples, generated reference). area/docs-site docs/src/content (Starlight), README, doc generation. labels Apr 27, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a small conversion-oriented README callout for readers familiar with npx skills add, pointing them to equivalent apm install usage for SKILL_BUNDLE-style repos.

Changes:

  • Insert a short "Coming from npx skills add?" block between the clone/install snippet and "The three promises" section.
  • Add two concrete apm install examples (full bundle and --skill subset).
  • Add a docs link intended to explain manifest/lockfile/reproducibility for skill bundles.
Show a summary per file
File Description
README.md Adds an npx skills add conversion block with example apm install commands and a link to package type docs.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 1

Comment thread README.md Outdated
apm install vercel-labs/agent-skills --skill deploy-to-vercel # one skill, persisted to apm.yml
```

Same install gesture. You also get a [manifest, lockfile, and reproducibility](https://microsoft.github.io/apm/reference/package-types/#skill-bundle).
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link fragment .../reference/package-types/#skill-bundle looks inconsistent with the docs page: docs/src/content/docs/reference/package-types.md has headings ## Skill bundle (SKILL.md at root) and ## Skill collection (skills//SKILL.md) (the latter is the SKILL_BUNDLE/npx-style layout). As written, #skill-bundle is likely not a valid anchor and also points readers at the wrong section. Suggest linking to the package-types page without a fragment, or update the fragment (and/or link text) to target the Skill collection / SKILL_BUNDLE section and verify it matches the rendered site slug.

Suggested change
Same install gesture. You also get a [manifest, lockfile, and reproducibility](https://microsoft.github.io/apm/reference/package-types/#skill-bundle).
Same install gesture. You also get a [manifest, lockfile, and reproducibility](https://microsoft.github.io/apm/reference/package-types/).

Copilot uses AI. Check for mistakes.
Copilot reviewer caught: #skill-bundle was wrong on two counts.
1. Rendered anchor is #skill-bundle-skillmd-at-root, not #skill-bundle --
   slugifier strips parens/dots/dashes differently than expected.
2. That heading documents the SKILL.md-at-root shape, but npx skills'
   layout is documented under 'Skill collection (skills/<name>/SKILL.md)'
   further down the same page.

The 'Skill collection' anchor exists in source (added in 0.9.4) but is
not deployed yet -- v0.9.4 docs auto-deploy from #953 is mid-rollout.
Linking to the page root is robust today and lands on the right doc;
both shapes are visible without a scroll.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danielmeppiel
Copy link
Copy Markdown
Collaborator Author

Thanks @copilot-pull-request-reviewer -- two real issues caught in one comment.

Pushed 42d7aa76 dropping the fragment entirely and linking to the page root https://microsoft.github.io/apm/reference/package-types/. Reasoning:

  1. Wrong anchor slug. Verified against the deployed page: only #skill-bundle-skillmd-at-root exists; #skill-bundle is not a valid anchor.
  2. Wrong heading semantically. That SKILL.md-at-root heading is the single-skill bundle shape, but npx skills add's layout is the multi-skill skills/<name>/SKILL.md layout, documented under "Skill collection" further down the same page.
  3. Source has the right anchor, but it isn't deployed yet. "Skill collection" landed in 0.9.4 source; the v0.9.4 docs auto-deploy (from fix(ci): deploy docs after bot-cut releases via workflow_call #953) is mid-rollout, so the README has to work against the live site, not the in-flight one.

Linking to the page root is robust today (lands on the right doc, both shapes visible above the fold) and self-correcting once 0.9.4 docs deploy completes.

… docs are live

v0.9.4 docs deploy completed (manual workflow_dispatch run 24983311706
after the underlying skip bug was identified -- fix in #981). The live
page now exposes #skill-collection-skillsnameskillmd, so we can land
readers exactly on the heading that documents the skills/<name>/SKILL.md
layout npx skills users already know.

Verified live:
  curl -s .../reference/package-types/ | grep -oE 'id="skill[^"]*"'
  -> id="skill-bundle-skillmd-at-root"
  -> id="skill-collection-skillsnameskillmd"

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danielmeppiel
Copy link
Copy Markdown
Collaborator Author

Update: v0.9.4 docs are now live. The deploy was actually broken in a workflow gate (the skip we saw was not just lag) -- root cause + fix in #981.

Manually triggered workflow_dispatch run 24983311706 succeeded; live site now exposes the precise anchor:

$ curl -s https://microsoft.github.io/apm/reference/package-types/ | grep -oE 'id="skill[^"]*"'
id="skill-bundle-skillmd-at-root"
id="skill-collection-skillsnameskillmd"

Restored the precise fragment in 14e60ac0 so the README lands readers exactly on the "Skill collection (skills/<name>/SKILL.md)" heading -- the layout npx skills users already know -- instead of the page root.

So this PR now ships with both the live docs and the right anchor. Conversion funnel from npx-skills users -> APM lands on the heading that matches their existing layout, not on a page they have to scan.

@danielmeppiel danielmeppiel merged commit 2640129 into main Apr 27, 2026
7 checks passed
@danielmeppiel danielmeppiel deleted the docs/readme-npx-skills-conversion branch April 27, 2026 08:14
danielmeppiel pushed a commit that referenced this pull request Apr 27, 2026
Promotes [Unreleased] to [0.10.0] - 2026-04-27. Each PR since v0.9.4
gets one 'so what' line:

- #926 Microsoft 365 Cowork target ships impl
- #790 marketplace authoring CLI (init, package add/set, build, check,
  outdated, doctor, publish) -- collapsed from 20+ bullets to one
- #722 marketplace plugin -> package rename + --help sectioning -- collapsed
- #980 README 'Coming from npx skills add' conversion block
- #981 docs auto-deploy on tag push (real fix for the #953 attempt)
- #985 pr-description-skill evals suite
- #984 pr-description-skill mermaid hardening
- #989 cowork sys.platform mock for Windows CI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
danielmeppiel added a commit that referenced this pull request Apr 30, 2026
* docs: add 'Coming from npx skills add' migration section

Add a dedicated section to the migration guide for users arriving from
the npx skills add / agentskills.io ecosystem. Covers the drop-in
install gesture, --skill flag for selective installs, and persistent
selection across machines.

This mirrors the README migration table added in v0.10.0 (#980) and
brings the docs site to parity.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: address Copilot review on migration page (#1016)

- Use American spelling 'recognizes' for consistency
- Replace non-ASCII em/en dashes with ASCII per repo policy

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot-rework@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs-site docs/src/content (Starlight), README, doc generation. type/docs Documentation change (prose, examples, generated reference).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants