Skip to content

feat: auto-detect package.json skills#464

Merged
danielroe merged 19 commits intonpmx-dev:mainfrom
onmax:feat/skills-modal-tabs
Feb 1, 2026
Merged

feat: auto-detect package.json skills#464
danielroe merged 19 commits intonpmx-dev:mainfrom
onmax:feat/skills-modal-tabs

Conversation

@onmax
Copy link
Copy Markdown
Contributor

@onmax onmax commented Jan 31, 2026

Add tabbed UI to switch between skills-npm and skills CLI installation methods.

Sidebar trigger

Agent Skills in sidebar

Modal tabs

skills-npm skills CLI
skills-npm skills-cli

Changes

  • Agent Skills card moved to sidebar (after keywords) - removes CLS
  • Custom hexagon icon matching Agent Skills spec
  • Tabbed install methods: skills-npm vs skills CLI
  • "Click to expand" hint for skill list
  • "Compatible with skills-npm" positive framing

Cons

Fragmented skill repositories

Not many module authors store skills in the same repository as the source code. For example, the repositories for VueUse are vueuse/vueuse and vueuse/skills, which makes it hard for us to link the source code with the skills.

I like how @antfu with skills-npm (and npm-agentskills) tries to solve this by "forcing" module authors to add the skills to the same repository as the source code (the docs usually live in the same repo already!), as these should not be in different repositories.

Non-standard .well-known path

RFC 8615 specifies .well-known URIs must be at the domain root (/.well-known/...). This implementation uses /{package}/.well-known/skills/... (or /@org/pkg/.well-known/skills/... for scoped packages).

Tradeoff: per-package namespacing works better with the skills CLI (npx skills add <url>/{package}), but technically doesn't follow the RFC.

Open questions

  • Is the architecture and the new paths acceptable?
  • Is the UI/UX good?

@vercel
Copy link
Copy Markdown

vercel Bot commented Jan 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
npmx.dev Ready Ready Preview, Comment Feb 1, 2026 10:10am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs.npmx.dev Ignored Ignored Preview Feb 1, 2026 10:10am
npmx-lunaria Ignored Ignored Feb 1, 2026 10:10am

Request Review

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 31, 2026

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
lunaria/files/en-US.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

@onmax onmax force-pushed the feat/skills-modal-tabs branch from 2789c94 to f4c3cd8 Compare January 31, 2026 08:42
@onmax onmax force-pushed the feat/skills-modal-tabs branch from 13cdba9 to 88d5b72 Compare January 31, 2026 08:45
@onmax onmax force-pushed the feat/skills-modal-tabs branch from 668f4e4 to cab4ddd Compare January 31, 2026 08:49
@onmax onmax force-pushed the feat/skills-modal-tabs branch from b6c2e78 to 85c313b Compare January 31, 2026 09:21
@danielroe
Copy link
Copy Markdown
Member

very cool!

the $ should probably be inline with the first part of the line, when wrapping:

SCR-20260131-jtgd

do we need to make it clearer that the number of skills is clickable? (or the entire Skills / 4 metric should be a button)

open questions:

  • should this go in the sidebar under keywords, etc.?
  • should it instead be in 'get started'?
  • I expect to have a command to run with skills-npm - if it just works then we should say something like 💡 these skills are compatible with skills-npm - just set it up and install

@onmax
Copy link
Copy Markdown
Contributor Author

onmax commented Jan 31, 2026

I also thought about put it in the sidebar, on the right. I think I like it more there and also removes the issue with CLS.

regarding to the last suggestion, I agree with you, I will implement it

I will also change the icon from robot to the agent spec svg

@onmax
Copy link
Copy Markdown
Contributor Author

onmax commented Jan 31, 2026

@danielroe ready!

@danielroe
Copy link
Copy Markdown
Member

@onmax did you forget to push?

Comment on lines +102 to 114
const {
data: fileContent,
status: fileStatus,
execute: fetchFileContent,
} = useFetch<PackageFileContentResponse>(() => fileContentUrl.value!, { immediate: false })

watch(
fileContentUrl,
url => {
if (url) fetchFileContent()
},
{ immediate: true },
)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is ths fixing another issue?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, let me test if this has been fixed in main. Otherwise opening another pr now

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Member

@danielroe danielroe left a comment

Choose a reason for hiding this comment

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

made a few refactors to align with playgrounds display - I'd be up for updating the style of both though in future! and I think we need to think about how to reduce CLS when doing client-side loading for this kind of info....

@danielroe danielroe changed the title feat: dual install methods in skills modal feat: auto-detect package.json skills Feb 1, 2026
@danielroe danielroe added this pull request to the merge queue Feb 1, 2026
Merged via the queue into npmx-dev:main with commit 88b8e90 Feb 1, 2026
14 checks passed
@ghostdevv ghostdevv mentioned this pull request Apr 4, 2026
3 tasks
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.

2 participants