<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Di Arch</title>
    <description>The latest articles on DEV Community by Di Arch (@c011abs).</description>
    <link>https://dev.to/c011abs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3859634%2Ff50f2704-22b9-4fa1-bbbd-e9272ea8dd04.png</url>
      <title>DEV Community: Di Arch</title>
      <link>https://dev.to/c011abs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/c011abs"/>
    <language>en</language>
    <item>
      <title>I Built npm for AI Skills — Here's Why AI Needs a Package Manager</title>
      <dc:creator>Di Arch</dc:creator>
      <pubDate>Fri, 03 Apr 2026 14:45:15 +0000</pubDate>
      <link>https://dev.to/c011abs/i-built-npm-for-ai-skills-heres-why-ai-needs-a-package-manager-10i9</link>
      <guid>https://dev.to/c011abs/i-built-npm-for-ai-skills-heres-why-ai-needs-a-package-manager-10i9</guid>
      <description>&lt;p&gt;AI skills are stuck in copy-paste hell. spm fixes this — install reusable AI instructions with one command, works with Claude, Cursor, VS Code, and 11 more clients via MCP.&lt;/p&gt;

&lt;p&gt;Every developer knows this pain: you find a perfect AI prompt. Maybe it's a code review checklist that catches bugs your linter misses. Or a set of prompt engineering techniques that dramatically improve your LLM outputs.&lt;/p&gt;

&lt;p&gt;You save it somewhere. A note. A file. A Slack message to yourself.&lt;/p&gt;

&lt;p&gt;A week later you need it again and can't find it. So you rewrite it from scratch. Or worse — you find a version, but it's outdated, and you don't remember which copy is current.&lt;/p&gt;

&lt;p&gt;This is 2026 and we're still managing AI knowledge with copy-paste.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem is obvious once you see it
&lt;/h2&gt;

&lt;p&gt;Software development solved this decades ago. Before npm, developers emailed JavaScript files to each other. Before pip, Python libraries lived on random FTP servers. Package managers brought versioning, dependencies, discovery, and sharing to code.&lt;/p&gt;

&lt;p&gt;AI skills — the structured instructions that make LLMs actually useful at specific tasks — have no equivalent. Right now, if you want to give Claude a solid code review methodology, or a set of prompt engineering best practices, you either:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write a custom system prompt yourself (and maintain it forever)&lt;/li&gt;
&lt;li&gt;Copy someone's prompt from GitHub/Reddit/Twitter (no versioning, no updates)&lt;/li&gt;
&lt;li&gt;Use a platform-specific solution that locks you into one client&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these scale. None of these compose. None of these let you share what you've built in a way others can reliably reuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  So I built spm
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;spm&lt;/strong&gt; (Skills Package Manager) does for AI skills what npm did for JavaScript modules. It's a CLI tool that installs, manages, and shares reusable AI instructions across any MCP-compatible client.&lt;/p&gt;

&lt;p&gt;Here's what the workflow looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install spm&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @skillbase/spm

&lt;span class="c"&gt;# Initialize&lt;/span&gt;
spm init

&lt;span class="c"&gt;# Connect to your AI client&lt;/span&gt;
spm connect claude       &lt;span class="c"&gt;# or cursor, vscode, windsurf, zed...&lt;/span&gt;

&lt;span class="c"&gt;# Install a skill&lt;/span&gt;
spm add skillbase/prompt-engineering-craft

&lt;span class="c"&gt;# That's it. Ask your AI to write a prompt.&lt;/span&gt;
&lt;span class="c"&gt;# It auto-loads the skill — chain-of-thought, few-shot,&lt;/span&gt;
&lt;span class="c"&gt;# structured output techniques — all available instantly.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No manual prompt engineering. No copy-pasting. The skill loads into context automatically when the AI needs it, via MCP.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a "skill" exactly?
&lt;/h2&gt;

&lt;p&gt;A skill is a directory with a &lt;code&gt;SKILL.md&lt;/code&gt; file at its core — structured instructions that tell an AI model how to perform a specific task. But a skill isn't limited to just instructions. The directory can also contain auxiliary scripts, templates, example files, and any other resources the AI might need. Think of &lt;code&gt;SKILL.md&lt;/code&gt; as &lt;code&gt;package.json&lt;/code&gt; — it's the entry point, but the whole directory is the package.&lt;/p&gt;

&lt;p&gt;The format is deliberately simple and extensible. Today a skill might be pure instructions. Tomorrow it could include a Python validation script, a Jinja template for generating reports, or reference data the AI consults during execution. The skill format grows with your needs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;arch-code-review&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Architecture-aware&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;code&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;review:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;coupling,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;cohesion,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;SOLID,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;complexity"&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;code-review&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;architecture&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;solid&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;complexity&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;refactoring&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Code Review&lt;/span&gt;

&lt;span class="gu"&gt;## What to evaluate&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Coupling/cohesion at module and class level
&lt;span class="p"&gt;-&lt;/span&gt; SOLID principle adherence
&lt;span class="p"&gt;-&lt;/span&gt; Naming quality and consistency
&lt;span class="p"&gt;-&lt;/span&gt; Cyclomatic complexity hotspots
&lt;span class="p"&gt;-&lt;/span&gt; Pull request design issues

&lt;span class="gu"&gt;## Review process&lt;/span&gt;
[step-by-step methodology follows]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Skills have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Semver versioning&lt;/strong&gt; — &lt;code&gt;skillbase/arch-code-review@1.0.3&lt;/code&gt;, so updates don't break your workflow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependencies&lt;/strong&gt; — a skill can depend on other skills&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auxiliary files&lt;/strong&gt; — scripts, templates, and resources bundled alongside instructions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triggers&lt;/strong&gt; — descriptions that help the AI decide when to load the skill&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence scores&lt;/strong&gt; — computed from real user feedback, so popular and effective skills rise to the top&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Skills compose into personas
&lt;/h2&gt;

&lt;p&gt;This is where it gets interesting. A &lt;strong&gt;persona&lt;/strong&gt; bundles multiple skills into a complete AI identity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;spm add @skillbase/prompt-engineer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This persona combines prompt engineering best practices, SKILL.md format knowledge, and quality evaluation — creating an AI that writes and reviews AI skills. It's skills all the way down.&lt;/p&gt;

&lt;p&gt;The registry currently has 52 skills and 16 personas. Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development:&lt;/strong&gt; &lt;code&gt;skillbase/python-backend&lt;/code&gt; (FastAPI, async, Pydantic), &lt;code&gt;skillbase/arch-code-review&lt;/code&gt;, &lt;code&gt;skillbase/arch-api-design&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security:&lt;/strong&gt; &lt;code&gt;skillbase/smart-contract-audit&lt;/code&gt;, &lt;code&gt;skillbase/appsec&lt;/code&gt; (OWASP Top 10), &lt;code&gt;skillbase/prompt-injection-detector&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi/Trading:&lt;/strong&gt; &lt;code&gt;skillbase/yield-analysis&lt;/code&gt;, &lt;code&gt;skillbase/leverage-calc&lt;/code&gt;, &lt;code&gt;skillbase/onchain-signals&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Meta-skills:&lt;/strong&gt; &lt;code&gt;skillbase/prompt-engineering-craft&lt;/code&gt; — techniques for writing better prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Works with 14 AI clients
&lt;/h2&gt;

&lt;p&gt;spm uses the &lt;strong&gt;Model Context Protocol&lt;/strong&gt; (MCP) as its transport layer. One &lt;code&gt;spm connect&lt;/code&gt; command and your skills work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude Desktop &amp;amp; Claude Code&lt;/li&gt;
&lt;li&gt;Cursor&lt;/li&gt;
&lt;li&gt;VS Code (Copilot)&lt;/li&gt;
&lt;li&gt;Windsurf&lt;/li&gt;
&lt;li&gt;JetBrains IDEs&lt;/li&gt;
&lt;li&gt;Zed&lt;/li&gt;
&lt;li&gt;And 8 more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Write a skill once, use it everywhere. No vendor lock-in.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works under the hood
&lt;/h2&gt;

&lt;p&gt;When you run &lt;code&gt;spm connect claude&lt;/code&gt;, spm registers itself as an MCP server. The AI client gets access to a set of tools:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;spm serve
  ├── skill_list     → Compact index of installed skills
  ├── skill_load     → Load full skill into context on demand
  ├── skill_search   → Find skills locally or in the registry
  ├── skill_install  → Install new skills at runtime
  └── skill_feedback → Record whether a skill worked well
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key design decision: &lt;strong&gt;lazy loading&lt;/strong&gt;. The AI model doesn't load all skills upfront — that would blow up the context window. Instead, it gets a compact index with names and trigger descriptions. When it encounters a task that matches a skill, it loads just that one. This keeps context lean and relevant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publishing your own skills
&lt;/h2&gt;

&lt;p&gt;Creating and sharing a skill takes minutes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a skill scaffold&lt;/span&gt;
spm create my-skill

&lt;span class="c"&gt;# Edit SKILL.md with your instructions&lt;/span&gt;
&lt;span class="c"&gt;# Then publish to the registry&lt;/span&gt;
spm publish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your skill gets a page on the &lt;a href="https://skillbase.space/explore" rel="noopener noreferrer"&gt;Explore registry&lt;/a&gt;, versioning, download stats, and a confidence score that improves as people use it and leave feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;Three trends are converging:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP is becoming the standard.&lt;/strong&gt; Anthropic's Model Context Protocol is now supported by every major AI client. This creates a universal transport layer — and spm sits right on top of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI capabilities are fragmenting.&lt;/strong&gt; Every team has their own prompts, their own instructions, their own "secret sauce." Without a sharing mechanism, every organization reinvents the wheel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents need composable skills.&lt;/strong&gt; As AI agents become more autonomous (OpenClaw, Paperclip, and others), they need a way to discover and use capabilities on demand. A skill registry with MCP-native access is exactly this infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @skillbase/spm
spm init
spm connect claude  &lt;span class="c"&gt;# or your preferred client&lt;/span&gt;
spm add skillbase/arch-code-review  &lt;span class="c"&gt;# try your first skill&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Browse the registry: &lt;a href="https://skillbase.space/explore" rel="noopener noreferrer"&gt;skillbase.space/explore&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read the docs: &lt;a href="https://skillbase.space/docs/getting-started" rel="noopener noreferrer"&gt;skillbase.space/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Star on GitHub: &lt;a href="https://github.com/useskillbase/spm" rel="noopener noreferrer"&gt;github.com/useskillbase/spm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;spm is open source (MIT), model-agnostic, and free to use. The registry is free to publish to.&lt;/p&gt;

&lt;p&gt;If you've ever wished you could &lt;code&gt;npm install&lt;/code&gt; an AI capability — now you can.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>mcp</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
