<?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: Divya kumar BAID</title>
    <description>The latest articles on DEV Community by Divya kumar BAID (@divya_kumarbaid_023632ba).</description>
    <link>https://dev.to/divya_kumarbaid_023632ba</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4213766%2F141681b2-1abc-489d-a684-8ad3e96331cf.png</url>
      <title>DEV Community: Divya kumar BAID</title>
      <link>https://dev.to/divya_kumarbaid_023632ba</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divya_kumarbaid_023632ba"/>
    <language>en</language>
    <item>
      <title>Prompt files are dependencies. Why aren't we versioning them?</title>
      <dc:creator>Divya kumar BAID</dc:creator>
      <pubDate>Wed, 28 Oct 2026 19:36:11 +0000</pubDate>
      <link>https://dev.to/divya_kumarbaid_023632ba/prompt-files-are-dependencies-why-arent-we-versioning-them-2cdl</link>
      <guid>https://dev.to/divya_kumarbaid_023632ba/prompt-files-are-dependencies-why-arent-we-versioning-them-2cdl</guid>
      <description>&lt;p&gt;If you use Claude Code, Cursor, or any agent that reads Markdown instructions, you probably have a folder of "skills": a deploy checklist, a code-review playbook, a set of rules someone shared on X.&lt;/p&gt;

&lt;p&gt;Look at where they came from. One is a gist, one was copied out of a GitHub repo three months ago, and one was pasted from Discord. You don't know which version you have, whether the author has fixed anything since, or what changed if you pull it again.&lt;/p&gt;

&lt;p&gt;We solved this for code decades ago with package managers. Prompt files change what your agent does just as much as a library changes what your program does, yet we still manage them by copy-paste.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;&lt;a href="https://amitte.com" rel="noopener noreferrer"&gt;Amitte&lt;/a&gt;&lt;/strong&gt;, an open registry for agent skills, agents and MCP servers. Here's what it does, the design decisions behind it, and what's still missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Versions are immutable
&lt;/h2&gt;

&lt;p&gt;You publish a skill as &lt;code&gt;publisher/name@version&lt;/code&gt;, and once a version is published it never changes. Each one is content-hashed (SHA-256), so a given &lt;code&gt;@1.2.0&lt;/code&gt; always refers to the same bytes. To change anything, you publish a new version.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i &lt;span class="nt"&gt;-g&lt;/span&gt; @amitte-ai/cli

skills init acme/deploy-checklist
&lt;span class="nv"&gt;$EDITOR&lt;/span&gt; skill.md
skills &lt;span class="nb"&gt;eval&lt;/span&gt;        &lt;span class="c"&gt;# sanity-check the skill before publishing&lt;/span&gt;
skills login       &lt;span class="c"&gt;# GitHub login; you always publish as yourself&lt;/span&gt;
skills publish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Installing for Claude Code writes a proper &lt;code&gt;.claude/skills/&amp;lt;name&amp;gt;/SKILL.md&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;skills &lt;span class="nb"&gt;install &lt;/span&gt;acme/deploy-checklist@1.2.0 &lt;span class="nt"&gt;--claude&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Bundles: pin the whole set, not each file
&lt;/h2&gt;

&lt;p&gt;This part came from a real user. A maintainer of a multi-skill project told me that versioning each skill separately wasn't enough. Their skills are designed to work together, and users ended up with mismatched combinations: skill A at v3 with skill B at v1, which was never tested and breaks in strange ways.&lt;/p&gt;

&lt;p&gt;What they wanted was the guarantee a lockfile gives you: a known-good snapshot of the whole set that you can roll back to.&lt;/p&gt;

&lt;p&gt;So a &lt;strong&gt;bundle release&lt;/strong&gt; is an immutable record that pins exact versions of every member skill, plus the upstream git commit it was cut from. The maintainer adds an &lt;code&gt;amitte-bundle.json&lt;/code&gt; to their repo and runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;skills release     &lt;span class="c"&gt;# refuses a dirty tree, records git HEAD,&lt;/span&gt;
                   &lt;span class="c"&gt;# publishes missing member versions, cuts the release&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Users install the whole set at once:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;skills &lt;span class="nb"&gt;install &lt;/span&gt;acme/toolkit &lt;span class="nt"&gt;--claude&lt;/span&gt;         &lt;span class="c"&gt;# latest release&lt;/span&gt;
skills &lt;span class="nb"&gt;install &lt;/span&gt;acme/toolkit@1.0.0 &lt;span class="nt"&gt;--claude&lt;/span&gt;   &lt;span class="c"&gt;# exact snapshot (also how you roll back)&lt;/span&gt;
skills bundle status &lt;span class="nt"&gt;--check&lt;/span&gt;                 &lt;span class="c"&gt;# what's installed, from which commit, is there a newer release?&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Installs are recorded in &lt;code&gt;amitte.lock.json&lt;/code&gt;. Installing a different release replaces the set as a unit and removes members the new release doesn't include, so you never end up with a mix of two releases.&lt;/p&gt;

&lt;p&gt;When someone files a bug, &lt;code&gt;skills bundle status --json&lt;/code&gt; tells the maintainer exactly which release and commit they're on.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Knowing who published it
&lt;/h2&gt;

&lt;p&gt;Anyone can claim the name "acme". So publishers can prove they own a domain, and verified publishers get a badge on everything they publish. It's the same idea as verified domains on npm or GitHub organisations: it doesn't make the content good, but it tells you who stands behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Agents can search the registry themselves
&lt;/h2&gt;

&lt;p&gt;Search is semantic (Postgres + pgvector embeddings), so "something to help me ship an iOS app" finds the App Store submission checklist even though the words don't match.&lt;/p&gt;

&lt;p&gt;There's also an MCP server, so an agent can do the lookup itself: &lt;code&gt;amitte_search&lt;/code&gt; to find skills, &lt;code&gt;amitte_fetch&lt;/code&gt; to pull one, and &lt;code&gt;amitte_compose&lt;/code&gt; to combine several for a task. Instead of you pasting a playbook into the context, the agent finds the right one when it needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Registry:&lt;/strong&gt; Hono + Drizzle on Postgres/pgvector&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Site:&lt;/strong&gt; Next.js 15&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI:&lt;/strong&gt; TypeScript (&lt;code&gt;@amitte-ai/cli&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guide:&lt;/strong&gt; a small RAG assistant called Folio lives in the corner of the site. It answers "where do I…?" questions and points at the right element on the page. It runs on a cheap open model with hybrid BM25 + embedding retrieval over a hand-written knowledge base.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's Apache-2.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's not done yet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cryptographic signing.&lt;/strong&gt; Today integrity relies on content hashes and immutability. Sigstore-based signing, so you can check &lt;em&gt;who&lt;/em&gt; produced a version and not just that it hasn't changed, is the next big item.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More content.&lt;/strong&gt; A registry is only as useful as what's in it, and it's early.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rough edges&lt;/strong&gt; across the site. I'm one person.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  I'd love your take
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Do you actually hit the "which version of this prompt do I have?" problem, or is copy-paste fine for you?&lt;/li&gt;
&lt;li&gt;If you maintain a set of skills or rules, what would get you to publish them to a registry instead of only keeping them in a repo?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you have a skill you use every day, try publishing it. I'll personally help anyone who hits a snag. Comments are open below, or find me at &lt;a href="https://amitte.com" rel="noopener noreferrer"&gt;https://amitte.com&lt;/a&gt;.&lt;/p&gt;

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