<?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: Shivaa Tripathi</title>
    <description>The latest articles on DEV Community by Shivaa Tripathi (@shalintripathi).</description>
    <link>https://dev.to/shalintripathi</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%2F4038783%2F6b042772-84be-4031-9e8e-d90e082146e0.jpg</url>
      <title>DEV Community: Shivaa Tripathi</title>
      <link>https://dev.to/shalintripathi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shalintripathi"/>
    <language>en</language>
    <item>
      <title>What tripped me up getting a Claude Code plugin through the Claude plugin directory</title>
      <dc:creator>Shivaa Tripathi</dc:creator>
      <pubDate>Mon, 02 Nov 2026 20:04:33 +0000</pubDate>
      <link>https://dev.to/shalintripathi/what-tripped-me-up-getting-a-claude-code-plugin-through-the-claude-plugin-directory-2cb4</link>
      <guid>https://dev.to/shalintripathi/what-tripped-me-up-getting-a-claude-code-plugin-through-the-claude-plugin-directory-2cb4</guid>
      <description>&lt;p&gt;I maintain an open-source Claude Code plugin: marketing agents for B2B SaaS, plus a mod that adds a live pane to Claude Code. I submitted it to Anthropic's plugin directory on Oct 8. For about a week every version was refused before it was even scanned. On Nov 3 it passed the security scan and went to a human reviewer.&lt;/p&gt;

&lt;p&gt;Here is what I would check before submitting, in the order I'd check it. Everything below either happened to my submission or comes from Anthropic's docs, which are linked.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;code&gt;claude plugin validate&lt;/code&gt; passing is not enough
&lt;/h2&gt;

&lt;p&gt;Run it first, from the folder that contains your plugin folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin validate ./your-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It only checks that your files are well-formed. The directory checks more: whether you have a README and a license, whether the name is taken, file sizes, what your hooks run. Use the &lt;strong&gt;Validate&lt;/strong&gt; step in the developer portal (&lt;a href="https://claude.ai/directory/manage" rel="noopener noreferrer"&gt;claude.ai/directory/manage&lt;/a&gt;) before you submit. The &lt;a href="https://claude.com/docs/plugins/pre-submission-checklist" rel="noopener noreferrer"&gt;pre-submission checklist&lt;/a&gt; lists every finding and whether it blocks you.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Put a README inside the plugin folder
&lt;/h2&gt;

&lt;p&gt;The plugin folder is the one that contains &lt;code&gt;.claude-plugin/plugin.json&lt;/code&gt;. If your plugin lives in a subfolder of the repo, a README at the repo root doesn't count.&lt;/p&gt;

&lt;p&gt;The checklist's rule: at least 40 words, in the plugin folder, and words inside code blocks don't count. Without it, validation blocks. The directory also shows this README as your listing's description, so write it for someone deciding whether to install.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check your &lt;code&gt;.gitattributes&lt;/code&gt; line-ending rules
&lt;/h2&gt;

&lt;p&gt;This is the one that cost me a week. My repo had this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* text=auto

*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The portal marked every new version "Refused before scanning" and pointed at &lt;code&gt;.gitattributes&lt;/code&gt;. What fixed it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;* text=auto eol=lf

*.ps1 text eol=lf

# Must stay after every rule that matches them (including `*` above).
*.bat -text
*.cmd -text
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This came from the portal's message on my own submission. The public checklist separately says &lt;code&gt;export-ignore&lt;/code&gt;, &lt;code&gt;export-subst&lt;/code&gt; and content-rewriting attributes like &lt;code&gt;filter&lt;/code&gt; (Git LFS included) stop validation. Check for both.&lt;/li&gt;
&lt;li&gt;After you push a fix, select &lt;strong&gt;Check for new commits&lt;/strong&gt; on the plugin's page. Otherwise the directory waits for its next scheduled check.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. If you have hooks or a mod, write down what each hook does
&lt;/h2&gt;

&lt;p&gt;The checklist asks you to describe in the README everything the plugin runs, sends or fetches. I added a short section to the plugin README, one line per hook:&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="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`session.start`&lt;/span&gt;: registers the &lt;span class="sb"&gt;`/campaign-board`&lt;/span&gt; command and checks whether
  &lt;span class="sb"&gt;`brand-context.md`&lt;/span&gt; exists in your project folder.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`tool.call`&lt;/span&gt; for &lt;span class="sb"&gt;`Write`&lt;/span&gt; and &lt;span class="sb"&gt;`Edit`&lt;/span&gt;: runs the call first, unchanged. Afterwards
  it reads the written text for &lt;span class="sb"&gt;`[NEEDS INPUT]`&lt;/span&gt; markers to show in the pane.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`ui.render`&lt;/span&gt;: draws the pane.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My scan passed, and the version was then held for content policy review with the reason "This plugin includes a mod." The docs are clear that a hold isn't a rejection: a reviewer reads the version before it can go live, and every new listing gets a person's review anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Bump &lt;code&gt;version&lt;/code&gt; in plugin.json every time you ship
&lt;/h2&gt;

&lt;p&gt;If &lt;code&gt;plugin.json&lt;/code&gt; sets a &lt;code&gt;version&lt;/code&gt; and you don't change it, people who installed keep their cached copy. Mine sat on 1.3.0 for two weeks, and installed copies missed 47 commits. Both the &lt;a href="https://claude.com/docs/plugins/submit" rel="noopener noreferrer"&gt;submit guide&lt;/a&gt; and the &lt;a href="https://code.claude.com/docs/en/plugins/loading#versions-and-updates" rel="noopener noreferrer"&gt;plugin versioning docs&lt;/a&gt; say to raise it with every release.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Tell users how to update
&lt;/h2&gt;

&lt;p&gt;Updating takes two commands, then a restart:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude plugin marketplace update &amp;lt;marketplace&amp;gt;
claude plugin update &amp;lt;plugin&amp;gt;@&amp;lt;marketplace&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first one only refreshes the marketplace. On its own it doesn't update the installed plugin. Auto-update is off by default for third-party marketplaces, so put these two lines in your README.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Know what the portal statuses mean
&lt;/h2&gt;

&lt;p&gt;From &lt;a href="https://claude.com/docs/directory/submission-status" rel="noopener noreferrer"&gt;Track your directory submission&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scanning:&lt;/strong&gt; Anthropic is running the security scan. Nothing for you to do.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Needs changes:&lt;/strong&gt; the newest version didn't pass, or couldn't be fetched. The page names what to change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In review:&lt;/strong&gt; a reviewer is checking it. If the version was held, the card names the category.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approved:&lt;/strong&gt; the version passed but isn't live yet. Approved doesn't mean people can install it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Published:&lt;/strong&gt; live in the directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where mine is now
&lt;/h2&gt;

&lt;p&gt;In review, held for the mod. I'll add the outcome here when the reviewer decides.&lt;/p&gt;

&lt;p&gt;If you want a working example to copy from, the repo has the plugin-folder README with the hook list, the fixed &lt;code&gt;.gitattributes&lt;/code&gt;, and a &lt;code&gt;plugin.json&lt;/code&gt; that gets a version bump every release: &lt;a href="https://github.com/shalintripathi/saas-marketing-agents" rel="noopener noreferrer"&gt;github.com/shalintripathi/saas-marketing-agents&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What is an AI SEO agent? A practical guide for 2026</title>
      <dc:creator>Shivaa Tripathi</dc:creator>
      <pubDate>Mon, 20 Jul 2026 20:15:39 +0000</pubDate>
      <link>https://dev.to/shalintripathi/what-is-an-ai-seo-agent-a-practical-guide-for-2026-243b</link>
      <guid>https://dev.to/shalintripathi/what-is-an-ai-seo-agent-a-practical-guide-for-2026-243b</guid>
      <description>&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://organicos.shivaatripathi.com/what-is-an-ai-seo-agent/" rel="noopener noreferrer"&gt;organicos.shivaatripathi.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In short:&lt;/strong&gt; An AI SEO agent is software that runs the search-optimization loop on your site continuously - observing performance, proposing changes, applying approved ones, and measuring outcomes - instead of producing a one-time audit. The useful ones keep a human in the approval path and remember what worked, so the site improves across runs rather than resetting each session.&lt;/p&gt;

&lt;p&gt;Search-optimization tooling has spent a decade producing reports. You run an audit, it lists 200 issues, you fix a few, and the report is stale the moment your site or the SERP changes. An AI SEO agent is a different shape of tool: it does not stop at the report. It runs the loop - observe, decide, apply, verify, learn - on a schedule, and carries what it learned into the next run.&lt;/p&gt;

&lt;p&gt;This matters more now than it did two years ago, because search itself has split. Buyers still type queries into Google, but they also ask ChatGPT, Perplexity, and Google's AI Overviews, and those engines cite sources by different rules. Optimizing for both at once, continuously, is more work than a person can do by hand and more judgment than a fire-and-forget script can be trusted with.&lt;/p&gt;

&lt;h2&gt;
  
  
  What separates an agent from an audit tool
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It runs on a schedule and remembers.&lt;/strong&gt; A point-in-time audit is blind to what it recommended last month and whether it worked. An agent keeps a per-site playbook, so a change that measurably helped becomes a reusable pattern and a change that did nothing gets retired.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It can act, not just advise.&lt;/strong&gt; An agent can apply the fix - update a title tag, publish a draft - through your CMS, then verify the change actually landed on the live page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It measures outcomes against what it shipped.&lt;/strong&gt; Because it remembers what it changed and when, it can attribute a movement in clicks or citations to a specific edit, rather than guessing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What an AI SEO agent optimizes for in 2026
&lt;/h2&gt;

&lt;p&gt;The best-supported tactics are not the ones most SEO content repeats. A controlled experiment across 10,000 queries, the &lt;a href="https://arxiv.org/abs/2311.09735" rel="noopener noreferrer"&gt;Generative Engine Optimization paper (KDD 2024)&lt;/a&gt;, found that named expert quotes lifted a page's visibility in AI-generated answers by 40.9%, statistics paired with named sources by 30.6%, and inline citations by 27.5%.&lt;/p&gt;

&lt;p&gt;Two more findings shape a modern agent's checklist. Vercel and MERJ, analyzing more than a billion AI-crawler requests, found that &lt;a href="https://vercel.com/blog/the-rise-of-the-ai-crawler" rel="noopener noreferrer"&gt;the major AI crawlers do not execute JavaScript&lt;/a&gt; - so a client-side-only page is invisible to them. And Seer Interactive found that &lt;a href="https://www.seerinteractive.com/insights/87-percent-of-searchgpt-citations-match-bings-top-results" rel="noopener noreferrer"&gt;87% of SearchGPT citations matched Bing's top organic results&lt;/a&gt;, which means Bing indexation, not only Google's, is now load-bearing for AI visibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the human-in-the-loop design matters
&lt;/h2&gt;

&lt;p&gt;The obvious fear with an agent that can edit your site is that it makes a bad change while you sleep. The answer is not to trust the model's judgment; it is to make unapproved changes impossible by construction. In a well-built agent, every write is gated on a recorded approval, enforced in code, not by convention. A change with no matching approval record simply cannot be applied.&lt;/p&gt;

&lt;p&gt;This is also where honesty about limits belongs. Google's &lt;a href="https://developers.google.com/search/docs/essentials/spam-policies" rel="noopener noreferrer"&gt;scaled content abuse policy&lt;/a&gt; treats mass-produced, low-value pages as spam. An agent that lets you dump fifty thin articles overnight is not helping you; it is helping you get penalized. The gate, and the human on the other side of it, is what keeps volume honest.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to evaluate one
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Does it run on a schedule and keep memory across runs, or is it a dressed-up one-time audit?&lt;/li&gt;
&lt;li&gt;Can you verify its safety claims yourself, or are you asked to take them on faith?&lt;/li&gt;
&lt;li&gt;Does it label weak tactics honestly? Adding schema markup, for instance, shows no measured lift in AI citations in controlled testing - a tool that sells it as an AI-visibility tactic is overselling.&lt;/li&gt;
&lt;li&gt;Where does your data live, and does the tool phone home?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I build &lt;a href="https://github.com/shalintripathi/organic-os" rel="noopener noreferrer"&gt;organic-os&lt;/a&gt;, an open-source implementation of this pattern as a free Claude plugin (MIT). It runs its own site in public, with a work log of every change and outcome. But the questions above apply to any agent you evaluate.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>ai</category>
      <category>wordpress</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
