<?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: Skillselion</title>
    <description>The latest articles on DEV Community by Skillselion (@skillselion).</description>
    <link>https://dev.to/skillselion</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%2F4011357%2Fd26aaea4-6874-4ef5-8130-82c8a6bf75ba.png</url>
      <title>DEV Community: Skillselion</title>
      <link>https://dev.to/skillselion</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/skillselion"/>
    <language>en</language>
    <item>
      <title>One file, two listings: verifying lark-doc against the GitHub source we said did not exist</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Sun, 13 Sep 2026 08:38:00 +0000</pubDate>
      <link>https://dev.to/skillselion/one-file-two-listings-verifying-lark-doc-against-the-github-source-we-said-did-not-exist-3l70</link>
      <guid>https://dev.to/skillselion/one-file-two-listings-verifying-lark-doc-against-the-github-source-we-said-did-not-exist-3l70</guid>
      <description>&lt;p&gt;We spent this morning doing something boring, and it turned up a correction we owe our own readers.&lt;/p&gt;

&lt;p&gt;We run a directory of agent skills. In August we published a deep dive on lark-doc, ByteDance's skill for driving Lark (Feishu) documents from a coding agent, and the dive opened with a sourcing note saying the skill had no public repository, so there was no commit to pin quotes to. Today we went looking for the upstream file again before quoting it. The repo has been public since March.&lt;/p&gt;

&lt;p&gt;Here is what the check found, what changed in the file since August, and the four-command recipe so you can run it on anything you install.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version
&lt;/h2&gt;

&lt;p&gt;The lark-doc SKILL.md that Feishu serves from its own domain is byte-identical to &lt;code&gt;skills/lark-doc/SKILL.md&lt;/code&gt; in the MIT-licensed &lt;code&gt;larksuite/cli&lt;/code&gt; repo. Both are 4,192 bytes over 49 lines and both hash to &lt;code&gt;2786f910370662069b1b52b98508033c84baaf0bd7b0bae177426ece4ceafacc&lt;/code&gt;. We fetched both on 13 September 2026. Two listings carry that same file with different install counts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two listings, two counts, and no total
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Vendor namespace&lt;/th&gt;
&lt;th&gt;GitHub namespace&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Install command&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx skills add https://open.feishu.cn --skill lark-doc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx skills add https://github.com/larksuite/cli --skill lark-doc&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All-time installs&lt;/td&gt;
&lt;td&gt;663,945&lt;/td&gt;
&lt;td&gt;439,469&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Figure stamped as of&lt;/td&gt;
&lt;td&gt;September 12, 2026&lt;/td&gt;
&lt;td&gt;September 7, 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repo stars shown&lt;/td&gt;
&lt;td&gt;none&lt;/td&gt;
&lt;td&gt;17k&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Both numbers come from the skills.sh registry, and we read both pages on 13 September 2026. The gap is 224,476, which makes the vendor-namespace count about 1.5 times the GitHub one.&lt;/p&gt;

&lt;p&gt;We are not going to add them for you. &lt;a href="https://skillselion.com/skills/open.feishu.cn/lark-doc?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;The Lark Doc skill page on Skillselion&lt;/a&gt; carries a notice that reads, verbatim as it rendered on 13 September 2026:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is a copy of lark-doc by larksuite - installs and ranking accrue to the original listing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What we can observe is that our catalog holds a separate record per install path and that the registry reports a different number against each. How an install gets attributed between them is not something we can see from outside, so this post carries no combined audience figure.&lt;/p&gt;

&lt;p&gt;Byte-identical duplicates across namespaces are common enough that we measured them. &lt;a href="https://skillselion.com/research/agent-skill-clone-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;Our Agent Skill Clone Census report&lt;/a&gt;, frozen on 2026-08-12, content-matched 79,848 listings and found 3,443 verified copies holding 26,061,541 installs, 15.8% of every install counted. The census test for a copy is a byte-identical SKILL.md. That is exactly the test lark-doc passes here, and the census found publishers re-listing their own work account for 35.0% of those copy-installs, a bigger slice than anyone ripping anyone off.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you check a skill file against its repo?
&lt;/h2&gt;

&lt;p&gt;Four steps, about thirty seconds, curl and shasum only.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hash what you were served.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://open.feishu.cn/.well-known/skills/lark-doc/SKILL.md | shasum &lt;span class="nt"&gt;-a&lt;/span&gt; 256
&lt;span class="c"&gt;# 2786f910370662069b1b52b98508033c84baaf0bd7b0bae177426ece4ceafacc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Get the current head SHA from the GitHub API. Never quote from a moving branch.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="s2"&gt;"https://api.github.com/repos/larksuite/cli/commits?per_page=1"&lt;/span&gt; | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.[0].sha'&lt;/span&gt;
&lt;span class="c"&gt;# 39aaf9fca0e08825b51f6d8c6c617bf781db761b&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Fetch the same path at that exact SHA.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sS&lt;/span&gt; &lt;span class="s2"&gt;"https://raw.githubusercontent.com/larksuite/cli/39aaf9fca0e08825b51f6d8c6c617bf781db761b/skills/lark-doc/SKILL.md"&lt;/span&gt; | shasum &lt;span class="nt"&gt;-a&lt;/span&gt; 256
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;diff&lt;/code&gt; them. Match means you can cite a pinned commit. Mismatch means the repo wins, because that is what the author currently says, and the difference itself is worth writing down.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Step 2 is the one people skip, and it is the one that matters. A permalink to &lt;code&gt;main&lt;/code&gt; drifts off the lines it quotes the next time anybody touches the file. Your citation then points at the wrong sentence and nothing tells you.&lt;/p&gt;

&lt;p&gt;While you are there, check the endpoint's headers. The vendor response carried no ETag and no Last-Modified, so there is nothing on that surface to pin a citation to even if you wanted to.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the file actually says
&lt;/h2&gt;

&lt;p&gt;At commit &lt;code&gt;39aaf9f&lt;/code&gt;, &lt;code&gt;skills/lark-doc/&lt;/code&gt; holds 44 files: the SKILL.md, 15 reference files, and 28 document-genre templates under &lt;code&gt;references/genres/&lt;/code&gt;. The SKILL.md is 49 lines and does almost nothing but route between them. The repo ships 28 directories with a SKILL.md in them and carries 17,151 stars and 1,381 forks under MIT (GitHub API, 13 September 2026).&lt;/p&gt;

&lt;p&gt;The frontmatter declares dependencies as machine-readable metadata instead of prose:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;requires&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;bins&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lark-cli"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
    &lt;span class="na"&gt;skills&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;lark-shared"&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;a href="https://github.com/larksuite/cli/blob/39aaf9fca0e08825b51f6d8c6c617bf781db761b/skills/lark-doc/SKILL.md#L1-L9" rel="noopener noreferrer"&gt;&lt;code&gt;skills/lark-doc/SKILL.md&lt;/code&gt;, frontmatter&lt;/a&gt;, commit &lt;code&gt;39aaf9f&lt;/code&gt;, read 13 September 2026&lt;/p&gt;

&lt;p&gt;A binary and a sibling skill, checkable before anything lands on disk. Compare that to the usual "make sure you have X installed" sentence halfway down a README.&lt;/p&gt;

&lt;p&gt;The first body instruction is about context budget, not documents:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**CRITICAL：先判断场景，再读取该场景的参考文件；不要在任务开始时一次性读取全部参考文件。每个文件只在首次进入对应阶段时读取一次。**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;a href="https://github.com/larksuite/cli/blob/39aaf9fca0e08825b51f6d8c6c617bf781db761b/skills/lark-doc/SKILL.md#L11-L19" rel="noopener noreferrer"&gt;&lt;code&gt;skills/lark-doc/SKILL.md&lt;/code&gt;, "场景与 Shortcut 路由"&lt;/a&gt;, commit &lt;code&gt;39aaf9f&lt;/code&gt;, read 13 September 2026&lt;/p&gt;

&lt;p&gt;Our translation: "CRITICAL: judge the scenario first, then read that scenario's reference file; do not read all the reference files at once when the task starts. Read each file only once, on first entering its stage." With 43 reference files behind a 49-line router, that is the whole design.&lt;/p&gt;

&lt;p&gt;The best line in the file is in the routing entry for writing a document from scratch:&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="gs"&gt;**从零创作 — [`创建工作流`](references/lark-doc-create-workflow.md)**&lt;/span&gt;：先完整执行创建工作流，&lt;span class="gs"&gt;**简单任务不是跳过的理由**&lt;/span&gt;；
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;a href="https://github.com/larksuite/cli/blob/39aaf9fca0e08825b51f6d8c6c617bf781db761b/skills/lark-doc/SKILL.md#L21-L27" rel="noopener noreferrer"&gt;&lt;code&gt;skills/lark-doc/SKILL.md&lt;/code&gt;, "文档内容"&lt;/a&gt;, commit &lt;code&gt;39aaf9f&lt;/code&gt;, read 13 September 2026&lt;/p&gt;

&lt;p&gt;"A simple task is not a reason to skip it." Somebody watched an agent decide a job was too small for the process and ship something malformed, then wrote a rule about it.&lt;/p&gt;

&lt;p&gt;The auth handling runs backwards from most skills, and we think it is the right call. The file tells the agent not to pre-read the shared auth skill and not to pre-run &lt;code&gt;auth status --verify&lt;/code&gt;, and to load it only after an unauthenticated, token, identity or scope error, then retry. Most skills pay an auth check on every single run forever. This one pays it once, on failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  One line changed since our August dive
&lt;/h2&gt;

&lt;p&gt;Our deep dive verified its quotes on 20 August 2026. Between &lt;code&gt;525a98270f80693bdaf3c0a6006e9f3f94820851&lt;/code&gt; (2026-08-14, the last change before that) and today's head, &lt;code&gt;diff&lt;/code&gt; returns exactly one changed line. Line 19, the rule for resolving local file paths.&lt;/p&gt;

&lt;p&gt;It went from a single sentence pinning &lt;code&gt;@path&lt;/code&gt; references to the current working directory, to a four-clause rule with a lookup order, a fallback to the source XML file's directory, and an explicit list of inputs that get no fallback at all (inline content, stdin, online documents). It arrived in &lt;a href="https://github.com/larksuite/cli/commit/9a29abeac09de79dceb16a1bf1416f67de2e20c8" rel="noopener noreferrer"&gt;commit &lt;code&gt;9a29abea&lt;/code&gt;&lt;/a&gt; on 2026-09-09. The file grew from 4,009 to 4,192 bytes and stayed at 49 lines.&lt;/p&gt;

&lt;p&gt;Two things worth reading off that rule rather than around it: local references widened from CWD-relative only to absolute paths anywhere on disk, and on a filename collision the copy in the working directory wins, silently.&lt;/p&gt;

&lt;p&gt;Our own catalog copy still shows the older line. Four days behind, confirmed by reading our listing page on 13 September 2026. That lag is precisely why the rule in our process is to re-fetch upstream before quoting, and it is the rule that caught our own error today.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we got wrong in August
&lt;/h2&gt;

&lt;p&gt;The August dive says "this skill has no public repository" and "There is no commit history to pin". Both wrong. &lt;code&gt;skills/lark-doc/SKILL.md&lt;/code&gt; has been public since 2026-03-28, in the commit that open-sourced lark-cli as the official Lark and Feishu CLI. Forty commits have touched that one file since then.&lt;/p&gt;

&lt;p&gt;What went wrong is mundane. We checked the vendor's &lt;code&gt;.well-known&lt;/code&gt; endpoint, saw no version handle, and stopped looking instead of searching GitHub for a distinctive line of the file. Thirty seconds of searching would have found it. The dive stays useful and its quotes still hold, but its sourcing note is wrong, and this post is where we say so. The index is at &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;the Skillselion deep dive series index&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should you install it?
&lt;/h2&gt;

&lt;p&gt;If your documents live in Lark or Feishu, yes, and take the suite rather than this one node. lark-doc deliberately does not handle file-level operations or comments, which belong to &lt;a href="https://skillselion.com/skills/open.feishu.cn/lark-drive?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;the Lark Drive agent skill page&lt;/a&gt;, and it does not touch spreadsheets or Base tables.&lt;/p&gt;

&lt;p&gt;One thing to read before you run the install command. Our GitHub-namespace listing shows a security audit of 2 of 3 scanners passed, sourced from the skills.sh audit and read on 13 September 2026. That is not a red flag by itself, but check the Security Audits panel on the listing before this goes anywhere near production.&lt;/p&gt;

&lt;p&gt;If you do not use Lark, skip it. Every capability assumes ByteDance's ecosystem, from the CLI binary to the URL formats it routes on.&lt;/p&gt;

&lt;p&gt;Prefer the GitHub install path either way. Same bytes, plus a diff for every future change. If the term itself is new to you, we keep a plain definition on &lt;a href="https://skillselion.com/glossary/agent-skill?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;the Skillselion agent skill glossary entry&lt;/a&gt;, and the listing that carries the repository, the stars and the security audit panel is &lt;a href="https://skillselion.com/skills/larksuite/cli/lark-doc?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=lark-doc-sep-13" rel="noopener noreferrer"&gt;the larksuite/cli Lark Doc skill listing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Run the four commands on the next skill you install. It takes thirty seconds and it is the only thing standing between you and quoting a file nobody can check.&lt;/p&gt;

&lt;p&gt;Verified against &lt;code&gt;larksuite/cli&lt;/code&gt; at commit &lt;code&gt;39aaf9fca0e08825b51f6d8c6c617bf781db761b&lt;/code&gt; and against the vendor-served SKILL.md on 13 September 2026. Install figures carry the as-of date stamped by the page they came from. Translations from the Chinese are ours. Skillselion is an independent directory and is not affiliated with ByteDance, Lark, Anthropic, OpenAI or Cursor.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Playwright CLI vs Playwright MCP in Claude Code: Microsoft's own READMEs already pick a side</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Fri, 11 Sep 2026 09:15:10 +0000</pubDate>
      <link>https://dev.to/skillselion/playwright-cli-vs-playwright-mcp-in-claude-code-microsofts-own-readmes-already-pick-a-side-1nhc</link>
      <guid>https://dev.to/skillselion/playwright-cli-vs-playwright-mcp-in-claude-code-microsofts-own-readmes-already-pick-a-side-1nhc</guid>
      <description>&lt;p&gt;Claude Code can drive a browser two ways: a skill that runs shell commands, or an MCP server that keeps the page inside the conversation. For everyday coding work, use Microsoft's playwright-cli skill and keep Playwright MCP for long exploratory runs and self-healing tests. Microsoft draws that line itself: both repos carry the same "CLI vs MCP" bullets near the top of their READMEs.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion, a directory of Claude Code, Codex and Cursor extensions ranked by installs. This post condenses our &lt;a href="https://skillselion.com/guides/playwright-cli-skill-claude-code-guide?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Playwright CLI vs Playwright MCP guide for Claude Code&lt;/a&gt;, which keeps the numbers below current.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does Microsoft's README say about CLI vs MCP?
&lt;/h2&gt;

&lt;p&gt;From the CLI bullet, word for word:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context, allowing agents to act through concise, purpose-built commands.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: microsoft/playwright-cli README, "Playwright CLI vs Playwright MCP"&lt;/p&gt;

&lt;p&gt;And from the MCP bullet in the same section:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;MCP remains relevant for specialized agentic loops that benefit from persistent state, rich introspection, and iterative reasoning over page structure, such as exploratory automation, self-healing tests, or long-running autonomous workflows where maintaining continuous browser context outweighs token cost concerns.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: microsoft/playwright-cli README, "Playwright CLI vs Playwright MCP"&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/microsoft/playwright-mcp" rel="noopener noreferrer"&gt;Playwright MCP repo&lt;/a&gt; carries the same two bullets, and its intro tells anyone using a coding agent that they "might benefit from using the CLI+SKILLS instead."&lt;/p&gt;

&lt;h2&gt;
  
  
  How do the two compare on installs and stars?
&lt;/h2&gt;

&lt;p&gt;Numbers from the Skillselion catalog on September 11, 2026 (skills.sh registry and GitHub):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;playwright-cli skill&lt;/th&gt;
&lt;th&gt;Playwright MCP server&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Installs as an agent skill&lt;/td&gt;
&lt;td&gt;144,722&lt;/td&gt;
&lt;td&gt;not tracked (MCP server)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub stars&lt;/td&gt;
&lt;td&gt;13,091&lt;/td&gt;
&lt;td&gt;36,836&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;Apache-2.0&lt;/td&gt;
&lt;td&gt;Apache-2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fit, per Microsoft's README&lt;/td&gt;
&lt;td&gt;coding agents&lt;/td&gt;
&lt;td&gt;exploratory, self-healing and long-running loops&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Playwright MCP has close to three times the stars. The CLI skill is the one developers install into their agents, and at 144,722 installs it leads every skill with "playwright" in its name. Both have listings with setup details: the &lt;a href="https://skillselion.com/skills/microsoft/playwright-cli?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;playwright-cli skill page&lt;/a&gt; and the &lt;a href="https://skillselion.com/mcp/tool/io.github.microsoft/playwright-mcp?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Playwright MCP server page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the CLI loop look like?
&lt;/h2&gt;

&lt;p&gt;Install the CLI, then let it place the skill where Claude Code finds it:&lt;br&gt;
&lt;/p&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; @playwright/cli@latest
playwright-cli &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--skills&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The skill teaches a snapshot-then-act loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;playwright-cli open https://example.com
playwright-cli snapshot
playwright-cli click e15
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each command prints the page URL, the title and a link to a YAML snapshot under &lt;code&gt;.playwright-cli/&lt;/code&gt;. The accessibility tree stays in that file until Claude asks for it, and on a heavy page &lt;code&gt;playwright-cli snapshot --depth=4&lt;/code&gt; or &lt;code&gt;playwright-cli find "Add to cart"&lt;/code&gt; keeps the read small. The SKILL.md frontmatter pre-approves three Bash patterns (&lt;code&gt;playwright-cli&lt;/code&gt;, &lt;code&gt;npx&lt;/code&gt;, &lt;code&gt;npm&lt;/code&gt;), and the &lt;a href="https://github.com/microsoft/playwright-cli" rel="noopener noreferrer"&gt;microsoft/playwright-cli&lt;/a&gt; skill folder bundles 9 reference files, request mocking, tracing and test generation among them.&lt;/p&gt;

&lt;p&gt;If you want MCP instead, the Playwright MCP README gives the Claude Code one-liner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add playwright npx @playwright/mcp@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Which playwright-cli skill should you install?
&lt;/h2&gt;

&lt;p&gt;Microsoft's. Check the owner before you run the install. A search of our catalog on September 11, 2026 returns at least 12 skills named exactly &lt;code&gt;playwright-cli&lt;/code&gt;. Microsoft's holds 144,722 installs, and no other one passes 1,500:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/screenci/screenci/playwright-cli?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;screenci's playwright-cli skill&lt;/a&gt;: 1,498 installs&lt;/li&gt;
&lt;li&gt;testdino-hq/playwright-skill: 463&lt;/li&gt;
&lt;li&gt;coleam00/Archon: 255&lt;/li&gt;
&lt;li&gt;gitlab-org/ai: 137&lt;/li&gt;
&lt;li&gt;seven more with 50 installs or fewer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The other 11 hold 2,495 installs between them. Most sit inside other projects' repos, and screenci's version, for one, is adapted from Microsoft's skill with steps added for ScreenCI video scripts.&lt;/p&gt;

&lt;p&gt;Two more names from the same search can trip you up. The &lt;a href="https://skillselion.com/skills/microsoft/playwright-cli/dev?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;dev skill in Microsoft's playwright-cli repo&lt;/a&gt; has 4,378 installs, but it covers rolling Playwright versions and preparing releases for that repository, so it does nothing for your app. And OpenAI's &lt;a href="https://skillselion.com/skills/openai/skills/playwright?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;playwright skill in openai/skills&lt;/a&gt; (6,314 installs) drives the browser through playwright-cli as well, so Codex users who install it get the same CLI approach under a different name.&lt;/p&gt;

&lt;h2&gt;
  
  
  When is something else the better pick?
&lt;/h2&gt;

&lt;p&gt;If you want Python scripts committed next to the app, &lt;a href="https://skillselion.com/skills/anthropics/skills/webapp-testing?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Anthropic's webapp-testing skill&lt;/a&gt; (151,377 installs) has Claude write native Python Playwright scripts and ships a &lt;code&gt;with_server.py&lt;/code&gt; helper that starts your dev server first.&lt;/p&gt;

&lt;p&gt;If you maintain a real test suite, the &lt;a href="https://skillselion.com/skills/currents-dev/playwright-best-practices-skill/playwright-best-practices?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;playwright-best-practices skill from currents.dev&lt;/a&gt; (79,834 installs) covers writing, debugging and maintaining Playwright tests, flaky-test fixes and CI sharding included.&lt;/p&gt;

&lt;p&gt;If the bug lives inside Chrome itself, our &lt;a href="https://skillselion.com/guides/chrome-devtools-mcp-debugging-claude-code?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Chrome DevTools MCP debugging guide&lt;/a&gt; covers setup, and the &lt;a href="https://skillselion.com/best/chrome-mcp-servers?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;ranked list of Chrome MCP servers&lt;/a&gt; shows the alternatives.&lt;/p&gt;

&lt;p&gt;One setup to avoid: Playwright MCP and the CLI skill connected for the same task. Claude can then load the tool schemas the CLI was meant to keep out of context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to go next
&lt;/h2&gt;

&lt;p&gt;For the same trade-off outside browsers, read &lt;a href="https://skillselion.com/guides/claude-skills-vs-mcp?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Claude Skills vs MCP&lt;/a&gt;. Testing tools ranked by installs are on &lt;a href="https://skillselion.com/best/skills-for-testing-review?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;Best Skills for Testing &amp;amp; Review&lt;/a&gt;, and more are in our &lt;a href="https://skillselion.com/guides/best-testing-skills-for-claude-code?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=playwright-cli-vs-mcp-sep-11" rel="noopener noreferrer"&gt;roundup of testing skills for Claude Code&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Which side of the split does your setup fall on? If you run Playwright MCP in a coding loop and it holds up on context, we would like to hear how.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>playwright</category>
      <category>testing</category>
      <category>claude</category>
    </item>
    <item>
      <title>We counted 5,690 agent skill authors. Eight of them hold half the installs.</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Thu, 10 Sep 2026 08:17:51 +0000</pubDate>
      <link>https://dev.to/skillselion/we-counted-5690-agent-skill-authors-eight-of-them-hold-half-the-installs-15bi</link>
      <guid>https://dev.to/skillselion/we-counted-5690-agent-skill-authors-eight-of-them-hold-half-the-installs-15bi</guid>
      <description>&lt;p&gt;We counted every publishing account in the Skillselion catalog on 2026-08-28: 5,690 accounts behind 59,685 agent skills and 162,061,967 registry installs. Authorship is wide, adoption is not. Eight accounts hold 50.05% of all installs, the top 1% hold 83.3%, and the author-install Gini coefficient is 0.982.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion, an independent directory of Claude Code, Codex and Cursor extensions. We are not affiliated with Anthropic, OpenAI or Cursor, and not with any account named below. The full study is &lt;a href="https://skillselion.com/research/agent-skill-author-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;The Agent Skill Author Census&lt;/a&gt;, published 2026-08-28.&lt;/p&gt;

&lt;h2&gt;
  
  
  How concentrated is the AI agent skill ecosystem?
&lt;/h2&gt;

&lt;p&gt;Very. We sorted all 5,690 accounts by cumulative installs and added from the top. Eight accounts reach 50.05%. Ten reach 54.6%. The top 1%, which is 57 accounts, reaches 83.3%, and 120 accounts (2.1% of all publishers) cover 90% of every install recorded in the catalog on 2026-08-28.&lt;/p&gt;

&lt;p&gt;The Gini coefficient of that distribution is 0.982. For reference, a Gini of 1.0 is one account holding everything.&lt;/p&gt;

&lt;p&gt;If you have shipped a skill and watched the install counter sit still, you are in the majority of accounts in this census. That is a fact about the distribution. It is not a diagnosis of your skill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which accounts hold half of all installs?
&lt;/h2&gt;

&lt;p&gt;Frozen to the 2026-08-28 census, ranked by share of the 162,061,967 total installs. The first eight rows are the ones that add to 50.05%. Ranks 9 and 10 are shown for context and take the running total to 54.6%.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Account&lt;/th&gt;
&lt;th&gt;Skills&lt;/th&gt;
&lt;th&gt;Install share&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;open.feishu.cn&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;td&gt;10.19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;mattpocock&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;9.46%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;microsoft&lt;/td&gt;
&lt;td&gt;186&lt;/td&gt;
&lt;td&gt;7.67%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;prime-skills&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;6.71%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;larksuite&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;6.57%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;vercel-labs&lt;/td&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;3.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;heygen-com&lt;/td&gt;
&lt;td&gt;44&lt;/td&gt;
&lt;td&gt;3.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;lllllllama&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;2.46%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;anthropics&lt;/td&gt;
&lt;td&gt;336&lt;/td&gt;
&lt;td&gt;2.37%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Leonxlnx&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;2.18%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Source: Skillselion Agent Skill Author Census, August 2026, Finding 01.&lt;/p&gt;

&lt;p&gt;Several of those names are already the ones developers hit first when they browse. Microsoft's Azure work shows up as &lt;a href="https://skillselion.com/skills/microsoft/azure-skills/microsoft-foundry?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the microsoft-foundry skill&lt;/a&gt;, Vercel Labs ships &lt;a href="https://skillselion.com/skills/vercel-labs/agent-browser?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the agent-browser skill&lt;/a&gt;, Anthropic's own account ships &lt;a href="https://skillselion.com/skills/anthropics/skills/frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the frontend-design skill&lt;/a&gt;, and rank 2 belongs to one person: &lt;a href="https://skillselion.com/skills/mattpocock/skills/grill-me?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;Matt Pocock's grill-me skill&lt;/a&gt; sits in the same account that holds 9.46% of the 162,061,967 installs in this census. His public repos are at &lt;a href="https://github.com/mattpocock" rel="noopener noreferrer"&gt;github.com/mattpocock&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One caveat before anyone reads the table as a quality ranking. An account here is a publishing account, so an organization counts as one author. Case-folding GitHub owner names merged 34 casing variants and brought 5,724 raw spellings down to 5,690 authors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do official vendor accounts explain the concentration?
&lt;/h2&gt;

&lt;p&gt;Partly, and less than the table suggests. Each listing carries a flag for whether the publisher is the vendor of the product the skill drives. On 2026-08-28 that was 5,576 skills, 9.3% of the census, carrying 41,384,836 installs, or 25.5%.&lt;/p&gt;

&lt;p&gt;So one skill in eleven is official and one install in four lands on one. Vendors do punch above their listing share. But 74.5% of installs still go to community accounts, which means the concentration is not simply big companies winning. Individual accounts are stacked at the top too.&lt;/p&gt;

&lt;p&gt;We wrote more about that split in &lt;a href="https://skillselion.com/guides/are-vendors-replacing-claude-code-skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;our guide on whether vendors are replacing Claude Code skills&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does publishing more skills earn more installs?
&lt;/h2&gt;

&lt;p&gt;No. Of the five findings, this is the one we would most want a first-time publisher to read.&lt;/p&gt;

&lt;p&gt;The most prolific account in the catalog, affaan-m, published 544 skills. They average 5,392 installs each and sum to 1.81% of the census. mattpocock published 45 skills that average 340,684 installs each and sum to 9.46%. One account out-published the other twelve to one. The other out-earned it five to one on installs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Publishing volume buys shelf space, and little else.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: Skillselion Agent Skill Author Census, August 2026, "Finding 04".&lt;/p&gt;

&lt;p&gt;The pattern holds further down the prolific list. sickn33 published 445 skills at 1,303 installs per skill. TheBushidoCollective published 387 at 47 installs per skill. Neither registers in install share.&lt;/p&gt;

&lt;p&gt;None of that is a judgement on the work. The census measures installs per publishing account and nothing about quality. See &lt;a href="https://github.com/affaan-m" rel="noopener noreferrer"&gt;affaan-m's repositories on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you do if you publish agent skills?
&lt;/h2&gt;

&lt;p&gt;Three things follow directly from the numbers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ship one skill you would use every day rather than a catalog. Dividing the two published averages gives an install-per-skill ratio of 63 to 1 between rank 2 and the most prolific account. That ratio is a derived figure, not a measured one, and it describes those two accounts rather than a rule about yours.&lt;/li&gt;
&lt;li&gt;Read the top of your own category before you write. &lt;a href="https://skillselion.com/category/ai-agents?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;The AI and agents category&lt;/a&gt; and &lt;a href="https://skillselion.com/leaderboard?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the install leaderboard&lt;/a&gt; show what already has traction, which is also what you have to be visibly better than.&lt;/li&gt;
&lt;li&gt;Expect a slow start. The median author in this census has zero installs, and 52.7% of the 5,690 accounts have never recorded one.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How was this counted?
&lt;/h2&gt;

&lt;p&gt;We dumped all 82,157 catalog listings on 2026-08-28 and aggregated the 59,685 skill listings by publishing account. MCP servers, plugins and marketplaces are excluded because they carry no comparable install count. Installs count registry install events, not active users, so read them as distribution rather than daily usage.&lt;/p&gt;

&lt;p&gt;The catalog itself is a live catalog, refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs. The counting rules and their limits are written up in &lt;a href="https://skillselion.com/research/methodology?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;How Skillselion Research is done&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Every number above recomputes from &lt;a href="https://skillselion.com/research/skillselion-agent-skill-author-census-2026-08-28.csv.gz?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the author census dataset&lt;/a&gt;, which has one row per publishing account with skill count, cumulative installs, install share and the official-vendor columns. It is CC BY 4.0. Cite "Skillselion Agent Skill Author Census, August 2026" and you are done.&lt;/p&gt;

&lt;p&gt;If you want the market-shape view instead of the author view, that is &lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;The Agent Economy Census&lt;/a&gt;, and the running totals are on &lt;a href="https://skillselion.com/research/ai-agent-statistics?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the AI agent statistics page&lt;/a&gt;. Reading a table is slower than browsing, and &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=agent-skill-author-census-2026-08" rel="noopener noreferrer"&gt;the agent skills catalog&lt;/a&gt; is the same data with filters on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Who builds AI agent skills?&lt;/strong&gt;&lt;br&gt;
5,690 publishing accounts, counted as case-folded GitHub owners and registry publishers, authored the 59,685 agent skills in the Skillselion catalog as of 2026-08-28. An organization counts as one account, so this measures concentration across publishers rather than across individual people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many installs does the average skill author have?&lt;/strong&gt;&lt;br&gt;
The arithmetic mean is about 28,481 installs per account, which no account near the middle resembles. The median is zero. 2,998 accounts (52.7%) have no recorded install on anything they published, and 3,539 accounts (62.2%) published exactly one skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is 0.982 a normal Gini coefficient for a developer ecosystem?&lt;/strong&gt;&lt;br&gt;
It is extreme on its face: 0.982 sits very close to the 1.0 ceiling, where a single account would hold everything. We measured it inside one catalog on one date, and we have not run the same computation on a package registry, so treat it as the shape of agent skill adoption on 2026-08-28 rather than a cross-ecosystem comparison.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I reuse these numbers?&lt;/strong&gt;&lt;br&gt;
Yes, under CC BY 4.0. Cite "Skillselion Agent Skill Author Census, August 2026" and link the study. The dataset download is on the same page.&lt;/p&gt;

&lt;p&gt;Last updated: 2026-09-10. Census figures frozen to 2026-08-28.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>claude</category>
      <category>programming</category>
    </item>
    <item>
      <title>Supabase promoted its Postgres skill's security tier to CRITICAL in January. The shelf behind it has not gained a file since.</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Sun, 06 Sep 2026 08:26:49 +0000</pubDate>
      <link>https://dev.to/skillselion/supabase-promoted-its-postgres-skills-security-tier-to-critical-in-january-the-shelf-behind-it-5ega</link>
      <guid>https://dev.to/skillselion/supabase-promoted-its-postgres-skills-security-tier-to-critical-in-january-the-shelf-behind-it-5ega</guid>
      <description>&lt;p&gt;Agent knowledge skills ship a priority table. Eight tiers, CRITICAL down to LOW, one prefix per tier, and it reads as a map of what is inside the bundle. It is not. It is a map of what the authors think matters, and those two things drift apart in a way you can watch commit by commit.&lt;/p&gt;

&lt;p&gt;Here is the case I read this morning, in &lt;code&gt;supabase/agent-skills&lt;/code&gt;. On 2026-01-16 the Postgres skill's table ranked Security and RLS &lt;strong&gt;fifth, at MEDIUM-HIGH&lt;/strong&gt;. Six days later two commits moved it to &lt;strong&gt;third, at CRITICAL&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0ffac72  2026-01-22T08:20:54Z  bump security and RLS to critical
a1fbd23  2026-01-22T08:32:12Z  turn rls basics critical
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neither commit added a security rule file. There were three that day. There are three now, out of thirty-one, seven and a half months later, while the bundle grew by one rule in a different tier. The label moved two ranks and one impact level. The material behind it did not move at all.&lt;/p&gt;

&lt;p&gt;That is not misconduct and the skill is a good one. It is a reason to stop reading tier labels as a proxy for depth, and I want to show you the three checks that replace them. Disclosure: I run Skillselion, a directory of agent skills ranked by install count, and I read this bundle while writing its &lt;a href="https://skillselion.com/skills/supabase/agent-skills/supabase-postgres-best-practices?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06#deep-dive" rel="noopener noreferrer"&gt;Supabase Postgres Best Practices deep dive&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check 1: count the reference directory, not the tiers
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;supabase-postgres-best-practices&lt;/code&gt; has 386,740 installs (skills.sh registry, September 5, 2026). Its table promises eight categories. Its &lt;code&gt;references/&lt;/code&gt; directory holds thirty-one rule files plus three meta files, and the split is this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Prefix&lt;/th&gt;
&lt;th&gt;Files&lt;/th&gt;
&lt;th&gt;Table priority&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;schema-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;4, HIGH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;query-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;1, CRITICAL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;conn-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;2, CRITICAL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;data-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;6, MEDIUM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;lock-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;5, MEDIUM-HIGH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;monitor-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;7, LOW-MEDIUM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;security-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;3, CRITICAL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;advanced-&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;8, LOW&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Source: GitHub listing of &lt;code&gt;skills/supabase-postgres-best-practices/references&lt;/code&gt;, read 2026-09-06&lt;/p&gt;

&lt;p&gt;Security is third by stated priority and seventh by volume. Only the LOW tier is thinner. Schema design, ranked below it, carries twice the material.&lt;/p&gt;

&lt;p&gt;Now open the three files themselves, because each rule carries its own &lt;code&gt;impact:&lt;/code&gt; line and inside the CRITICAL security tier they read:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Own &lt;code&gt;impact:&lt;/code&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;security-rls-basics.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CRITICAL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;security-rls-performance.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;security-privileges.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;MEDIUM&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Source: frontmatter of the three &lt;code&gt;references/security-*.md&lt;/code&gt; files, read 2026-09-06&lt;/p&gt;

&lt;p&gt;Two thirds of the CRITICAL security tier does not describe itself as critical. The tier label is the loudest thing in the file and the least specific thing in the bundle.&lt;/p&gt;

&lt;p&gt;The three that exist are good, and &lt;code&gt;security-rls-basics.md&lt;/code&gt; is the one to read even if you never install anything:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Relying only on application to filter&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;current_user_id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- Bug or bypass means all data is exposed!&lt;/span&gt;
&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;-- Returns ALL orders&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;code&gt;references/security-rls-basics.md&lt;/code&gt;, "Incorrect (application-level filtering only)" block&lt;/p&gt;

&lt;p&gt;&lt;code&gt;security-privileges.md&lt;/code&gt; annotates &lt;code&gt;grant all privileges on all tables in schema public to app_user&lt;/code&gt; with &lt;code&gt;-- Any SQL injection becomes catastrophic&lt;/code&gt;. Fifteen good minutes. Three files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check 2: does the metadata agree with the changelog?
&lt;/h2&gt;

&lt;p&gt;Supabase's frontmatter still says this today:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1.1.1"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;January &lt;/span&gt;&lt;span class="m"&gt;2026&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: &lt;code&gt;SKILL.md&lt;/code&gt; frontmatter, read 2026-09-06&lt;/p&gt;

&lt;p&gt;The CHANGELOG shipped in the same directory has its most recent entry at 1.6.0, dated 2026-07-30. Five minor versions and six months separate what the file says about itself from what the file is. The January date is a creation stamp, accurate when written and never touched since.&lt;/p&gt;

&lt;p&gt;Harmless until your install tooling or a freshness check reads a version string to decide whether to re-pull. This one has been wrong for half a year, and it never errors, because a file reporting on itself cannot report that it is stale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check 3: do the rules teach the broken version first?
&lt;/h2&gt;

&lt;p&gt;Every rule file in the bundle leads with the mistake before the fix, and that is documented policy rather than a habit I inferred. &lt;code&gt;references/_contributing.md&lt;/code&gt; names it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Always show the problematic pattern first, then the solution. This trains agents to recognize anti-patterns.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;code&gt;references/_contributing.md&lt;/code&gt;, "Error-First Structure"&lt;/p&gt;

&lt;p&gt;This is the single best thing in the bundle and it is worth demanding from any knowledge skill you install. An agent asked to review a schema somebody else wrote has to recognise the anti-pattern in the wild, which means it must have seen the anti-pattern labelled, next to its replacement. A rule file that shows only correct code teaches the agent to write, not to review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where did this table shape come from?
&lt;/h2&gt;

&lt;p&gt;Worth knowing, because it explains why the tier labels are so uniform across vendors: the shape is not Supabase's. Vercel committed it first.&lt;/p&gt;

&lt;p&gt;Supabase's opening sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Comprehensive performance optimization guide for Postgres, maintained by Supabase. Contains rules across 8 categories, prioritized by impact to guide automated query optimization and schema design.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;code&gt;supabase/agent-skills&lt;/code&gt;, &lt;code&gt;skills/supabase-postgres-best-practices/SKILL.md&lt;/code&gt;, read 2026-09-06&lt;/p&gt;

&lt;p&gt;Vercel's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Comprehensive performance optimization guide for React and Next.js applications, maintained by Vercel. Contains 70 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;code&gt;vercel-labs/agent-skills&lt;/code&gt;, &lt;code&gt;skills/react-best-practices/SKILL.md&lt;/code&gt;, read 2026-09-06&lt;/p&gt;

&lt;p&gt;The longest identical run is nine words: &lt;code&gt;across 8 categories, prioritized by impact to guide automated&lt;/code&gt;. Nine words is short enough to be coincidence on its own. Three byte-identical headings (&lt;code&gt;## When to Apply&lt;/code&gt;, &lt;code&gt;## Rule Categories by Priority&lt;/code&gt;, &lt;code&gt;## How to Use&lt;/code&gt;), two byte-identical lead-ins (&lt;code&gt;Reference these guidelines when:&lt;/code&gt; and &lt;code&gt;Each rule file contains:&lt;/code&gt;) and a priority table with the same header row, exactly eight rows and the same &lt;code&gt;advanced-&lt;/code&gt; bottom tier are not.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;First commit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;vercel-labs/agent-skills&lt;/code&gt; react SKILL.md&lt;/td&gt;
&lt;td&gt;2026-01-14 02:35Z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;supabase/agent-skills&lt;/code&gt; postgres SKILL.md&lt;/td&gt;
&lt;td&gt;2026-01-16 02:52Z&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Two days, and read that second row carefully if you go checking. Supabase's file has been renamed twice, from &lt;code&gt;postgresql-best-practices&lt;/code&gt; to &lt;code&gt;postgres-best-practices&lt;/code&gt; to &lt;code&gt;supabase-postgres-best-practices&lt;/code&gt;, so GitHub's per-path history reports a January 26 first commit and will tell you the gap was twelve days. Read the tree at the repository's first commit instead. The opening sentence, the three headings and the eight-row table are all there on January 16, at version 0.1.0.&lt;/p&gt;

&lt;p&gt;I read the README, CONTRIBUTING, AGENTS and CLAUDE files in both repositories and found no mention in either direction. Both SKILL.md files carry &lt;code&gt;license: MIT&lt;/code&gt; in their own frontmatter, which permits exactly this, though only Supabase ships an actual LICENSE file.&lt;/p&gt;

&lt;p&gt;So the honest word is reuse, and what it tells you as a reader is more useful than any accusation. A house style for vendor knowledge skills exists: thin index, deep per-rule reference files, impact tiers as the organizing idea, error first inside each rule. It travels. You will meet it again, which is exactly why the shape has stopped being a signal and the three checks above have to do that work instead.&lt;/p&gt;

&lt;p&gt;Vercel's version is the fuller build of the same idea. Its &lt;code&gt;rules/&lt;/code&gt; directory really does hold seventy rule files behind the seventy the header claims, plus a pipeline that compiles and tests them, and you can read what is in it on &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/vercel-react-best-practices?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;the Vercel React Best Practices listing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Run the three checks on the rest of your database shelf
&lt;/h2&gt;

&lt;p&gt;Counting a reference directory takes a minute and sorts a category faster than an install count will. The &lt;a href="https://skillselion.com/skills/prisma/skills/prisma-postgres?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Prisma Postgres&lt;/a&gt;, &lt;a href="https://skillselion.com/skills/prisma/skills/prisma-database-setup?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Prisma Database Setup&lt;/a&gt; and &lt;a href="https://skillselion.com/skills/prisma/skills/prisma-client-api?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Prisma Client API&lt;/a&gt; skills are the obvious next three. Outside Postgres, &lt;a href="https://skillselion.com/skills/microsoft/azure-skills/azure-kusto?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Azure Kusto&lt;/a&gt; and &lt;a href="https://skillselion.com/skills/open.feishu.cn/lark-base?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Lark Base&lt;/a&gt; sit on the same &lt;a href="https://skillselion.com/category/backend-data?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;backend and data category page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The checks generalise past databases, and the interesting cases are the ones that answer "where should the knowledge live" differently. &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/web-design-guidelines?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Web Design Guidelines&lt;/a&gt; is a thin index with nothing behind it at all. &lt;a href="https://skillselion.com/skills/vercel-labs/agent-browser?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Agent Browser&lt;/a&gt; ships a stub and fetches its real instructions from a CLI at runtime, version matched so they cannot go stale. &lt;a href="https://skillselion.com/skills/shadcn/ui/shadcn?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;The shadcn skill&lt;/a&gt; shells out for live project config rather than trusting the model's memory of the registry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should you install supabase-postgres-best-practices?
&lt;/h2&gt;

&lt;p&gt;Yes, if an agent writes SQL that reaches production, on Supabase or anywhere else. The frontmatter scopes it to "Postgres running anywhere" and the rules are standard Postgres. The priority ordering is sound, the error-first format is the best teaching shape I have seen in a knowledge skill, and the three security files are worth the read on their own. Skip it if your database work is read-only analytics against a warehouse you do not own. Adjust your expectations on depth before you install rather than after: eight tiers sounds comprehensive and thirty-one files is what arrives.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add https://github.com/supabase/agent-skills &lt;span class="nt"&gt;--skill&lt;/span&gt; supabase-postgres-best-practices
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Did Supabase copy Vercel's skill?&lt;/strong&gt;&lt;br&gt;
The two files share three byte-identical headings, two byte-identical lead-ins, a nine-word run in the opening sentence and a priority table of the same shape, and Vercel's was committed two days earlier. Neither repository credits the other, and both SKILL.md files declare &lt;code&gt;license: MIT&lt;/code&gt;, so the reuse is permitted. Commit dates document the direction. Nothing documents the intent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does supabase-postgres-best-practices only work with Supabase?&lt;/strong&gt;&lt;br&gt;
No. The frontmatter scopes it to "Postgres best practices maintained by Supabase, for Postgres running anywhere". The rules are standard Postgres: indexes, pooling, RLS, locking, schema design. Individual rule files add Supabase-specific notes where the platform differs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eight categories sounds big. How many rules actually ship?&lt;/strong&gt;&lt;br&gt;
Thirty-one reference files plus three meta files, spread unevenly: schema six, query five, connections four, data four, locking four, monitoring three, security three, advanced two. The eight tiers describe priority, not volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where can I read the full breakdown?&lt;/strong&gt;&lt;br&gt;
The line-by-line read is in the &lt;a href="https://skillselion.com/skills/supabase/agent-skills/supabase-postgres-best-practices?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06#deep-dive" rel="noopener noreferrer"&gt;Supabase Postgres Best Practices deep dive&lt;/a&gt;, and the companion pieces are in &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;the deep dive series index&lt;/a&gt;. For why vendors are shipping these at all, &lt;a href="https://skillselion.com/guides/are-vendors-replacing-claude-code-skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=vendor-house-style-sep-06" rel="noopener noreferrer"&gt;Are vendors replacing community Claude Code skills?&lt;/a&gt; has the wider argument.&lt;/p&gt;

&lt;p&gt;Last updated: September 6, 2026. Install counts from the skills.sh registry as of September 5, 2026. File quotes, commit hashes and dates, and the reference directory listing were read from GitHub on September 6, 2026.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>postgres</category>
      <category>database</category>
    </item>
    <item>
      <title>The start-here skill of a 60,112-star AI gateway links 17 sibling skills. 16 are dead.</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Wed, 02 Sep 2026 14:42:48 +0000</pubDate>
      <link>https://dev.to/skillselion/the-start-here-skill-of-a-60112-star-ai-gateway-links-17-sibling-skills-16-are-dead-3d2g</link>
      <guid>https://dev.to/skillselion/the-start-here-skill-of-a-60112-star-ai-gateway-links-17-sibling-skills-16-are-dead-3d2g</guid>
      <description>&lt;p&gt;OmniRoute is having its breakout month. OmniRoute is a free, MIT-licensed AI gateway that puts one OpenAI-compatible endpoint in front of many model providers (352 of them, by its own README). It sits at 60,112 GitHub stars, and "omniroute" is a Breakout riser in Google Trends as of September 2, 2026. So we did what we do for skills with momentum: we read the repo's designated start-here skill for REST access, &lt;code&gt;omni-auth&lt;/code&gt;, byte by byte at commit &lt;code&gt;93265ee&lt;/code&gt;, and published the full walkthrough as a &lt;a href="https://skillselion.com/skills/diegosouzapw/OmniRoute/omni-auth?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02#deep-dive" rel="noopener noreferrer"&gt;line-by-line deep dive on the omni-auth listing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The file is 7,168 bytes over 150 lines, and the most interesting thing in it is a table that has quietly died.&lt;/p&gt;

&lt;h2&gt;
  
  
  The file tells you it was not written by a person
&lt;/h2&gt;

&lt;p&gt;The first line after the frontmatter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OmniRoute generates its skill files from the application's API surface, the way OpenAPI docs come out of route definitions. The endpoints in the file cannot drift from the running server. The parts the generator does not touch, we found out, can.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the skill actually teaches an agent
&lt;/h2&gt;

&lt;p&gt;Most &lt;a href="https://skillselion.com/glossary/agent-skill" rel="noopener noreferrer"&gt;agent skills&lt;/a&gt; are prose instructions; this one is closer to a compressed API reference. It teaches three things, and they are the right three:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Two credential types, and the boundary between them.&lt;/strong&gt; API calls take a Bearer key. The dashboard takes a password and returns a session cookie. The file says this in two sentences, and an agent that mixes them up gets a clean &lt;code&gt;401&lt;/code&gt; instead of a mystery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A two-variable setup.&lt;/strong&gt; There is no Claude Code section or Cursor section because none is needed: any agent that speaks OpenAI-style REST points at the same base URL. Running the server itself belongs to the sibling &lt;a href="https://skillselion.com/skills/diegosouzapw/OmniRoute/cli-serve?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;cli-serve skill&lt;/a&gt;.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OMNIROUTE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:20128
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OMNIROUTE_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;...          &lt;span class="c"&gt;# minted in the dashboard&lt;/span&gt;
curl &lt;span class="nv"&gt;$OMNIROUTE_URL&lt;/span&gt;/api/health    &lt;span class="c"&gt;# {"ok":true}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A status-code-to-recovery table.&lt;/strong&gt; &lt;code&gt;401&lt;/code&gt; means refresh your key, &lt;code&gt;503 Provider circuit open&lt;/code&gt; means wait &lt;code&gt;Retry-After&lt;/code&gt; and let auto-fallback work. Four bullets that stop an agent from retry-hammering a provider whose circuit breaker is open.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a generated file, the OIDC section is unusually explicit: state-cookie CSRF protection, ID-token verification against the issuer's JWKS, an optional subject allowlist, and a 30-day session JWT. That paragraph is where the dashboard's security posture actually lives, and you can read it in the skill file instead of the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  The dead tables
&lt;/h2&gt;

&lt;p&gt;The back half of the file is older, and it says so: a comment marks it as content migrated from an earlier skill and preserved. It ends with the skill's most useful-looking artifact: two tables linking 17 sibling skills by raw URL. Chat, images, TTS, embeddings, routing, compression, the MCP server, the CLI family.&lt;/p&gt;

&lt;p&gt;We fetched all 17 URLs on September 2, 2026. &lt;strong&gt;Sixteen return 404.&lt;/strong&gt; The only one that resolves is &lt;code&gt;omni-mcp&lt;/code&gt;, the only entry whose name survived the catalog's rename to the current &lt;code&gt;omni-*&lt;/code&gt; and &lt;code&gt;cli-*&lt;/code&gt; families. The repo holds 46 SKILL.md files on disk; its own live skills index lists 45 of them correctly, one directory up from the dead tables.&lt;/p&gt;

&lt;p&gt;The defense is printed in the file itself: the block is labeled as preserved legacy content, and the generator's notice says manual edits get overwritten, so a hand fix would not stick. The consequence still lands on the agent, though. An assistant that follows the start-here skill's own index to load a capability fetches sixteen 404 pages while the working index sits beside it.&lt;/p&gt;

&lt;p&gt;The preserved block has a second tell: it says 327 providers while the README at the same commit says "352 providers" four times. Content outside the generator's reach trails the product. Anything below that migration comment deserves a date check.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it safe to route your prompts through it?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Yes, if you keep it on your own machine.&lt;/strong&gt; A gateway sees every prompt that passes through it, so the trust question is about where it runs. OmniRoute is self-hosted by default, MIT-licensed end to end, with password plus optional OIDC-allowlist login and CSRF-guarded flows. The 30-day session token is long-lived, and the allowlist only protects you if you configure it. For calibration on how rare any scrutiny is in this ecosystem: our &lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;agent skill security census&lt;/a&gt;, taken in August 2026, scanned 79,848 listings and found 87.8% of agent skills have never had a security audit.&lt;/p&gt;

&lt;p&gt;If you are weighing OmniRoute against the incumbent, we also published a comparison against LiteLLM (57,827 stars, MIT core plus a commercial enterprise tier, with its own &lt;a href="https://skillselion.com/mcp/tool/io.github.BerriAI/litellm-mcp?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;MCP server listing&lt;/a&gt;): &lt;a href="https://skillselion.com/guides/omniroute-vs-litellm?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;OmniRoute vs LiteLLM&lt;/a&gt;. Short version: OmniRoute belongs on a machine you own, LiteLLM on a proxy a team shares.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where OmniRoute sits in the catalog
&lt;/h2&gt;

&lt;p&gt;The repo ships 46 skills; skills.sh shows its 20 most-installed at 308 to 388 installs each (all-time, September 2, 2026), tiny numbers next to the head of the &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;skills leaderboard&lt;/a&gt; where &lt;a href="https://skillselion.com/skills/mattpocock/skills/grill-me?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;grill-me&lt;/a&gt; alone crossed a million. The 60k stars and the Breakout search curve say the gateway is what people want; the skills are along for the ride. That gap between repo fame and skill adoption is the same shape our &lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;agent economy census&lt;/a&gt; measured across the whole ecosystem: attention concentrates, installs concentrate harder.&lt;/p&gt;

&lt;p&gt;Both entry-point skills are now listed on Skillselion, alongside the rest of the &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=omniroute-sep-02" rel="noopener noreferrer"&gt;deep-dive series&lt;/a&gt; where we read one skill's actual file per piece.&lt;/p&gt;

&lt;p&gt;Source repo: &lt;a href="https://github.com/diegosouzapw/OmniRoute" rel="noopener noreferrer"&gt;diegosouzapw/OmniRoute&lt;/a&gt;. The pinned file we quoted: &lt;a href="https://github.com/diegosouzapw/OmniRoute/blob/93265eede34d5666784aca474ccc41ce3c68140b/skills/omni-auth/SKILL.md" rel="noopener noreferrer"&gt;skills/omni-auth/SKILL.md at 93265ee&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion, the directory these listings live on. The catalog is refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>devtools</category>
      <category>opensource</category>
    </item>
    <item>
      <title>What is inside Emil Kowalski's design skill? We read all 27KB of emil-design-eng</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Wed, 02 Sep 2026 02:26:53 +0000</pubDate>
      <link>https://dev.to/skillselion/what-is-inside-emil-kowalskis-design-skill-we-read-all-27kb-of-emil-design-eng-4l35</link>
      <guid>https://dev.to/skillselion/what-is-inside-emil-kowalskis-design-skill-we-read-all-27kb-of-emil-design-eng-4l35</guid>
      <description>&lt;p&gt;emil-design-eng is Emil Kowalski's agent skill for interface polish: one 27,226-byte SKILL.md and nothing else. It opens with a scripted first reply, spends most of its animation framework arguing against animating, swaps the CSS easing keywords for three cubic-bezier constants, and requires a Before/After/Why table in every review. It has 243,573 installs as of September 2, 2026 (Skillselion catalog).&lt;/p&gt;

&lt;p&gt;"emil kowalski design skill" is a breakout rising query on Google Trends today, September 2, 2026 (past 30 days, worldwide). Most pages answering it repeat the one-line description, so we read the file section by section for the &lt;a href="https://skillselion.com/skills/emilkowalski/skills/emil-design-eng?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02#deep-dive" rel="noopener noreferrer"&gt;emil-design-eng deep dive&lt;/a&gt; on Skillselion. This is the developer cut: what the file instructs an agent to do, and where it argues with itself. Its last commit in &lt;a href="https://github.com/emilkowalski/skills" rel="noopener noreferrer"&gt;emilkowalski/skills&lt;/a&gt; is dated July 21, 2026, so what we read on August 20 is what installs today.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion, an independent directory of agent skills (live catalog, refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs). We are not affiliated with Anthropic, OpenAI, Cursor or Emil Kowalski.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does emil-design-eng say before you ask anything?
&lt;/h2&gt;

&lt;p&gt;On an invocation with no question attached, the "Initial Response" section fixes the reply to one line. It begins "I'm ready to help you build interfaces that feel right, my knowledge comes from Emil Kowalski's design engineering philosophy." and ends by pointing at the author's course at animations.dev. Then:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not provide any other information until the user asks a question.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "Initial Response"&lt;/p&gt;

&lt;p&gt;The wait rule is sound. A 27KB payload with no question to spend it on should stay latent. The course link is a marketing placement written as an instruction, one sentence, once. Know it is there before the agent's output reaches a customer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does the emil-design-eng skill tell the agent to animate?
&lt;/h2&gt;

&lt;p&gt;Mostly it tells the agent not to. Four questions are asked in order, and the first is whether to animate at all, answered by a frequency table whose top row (keyboard shortcuts, command palette toggle) reads "No animation. Ever."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Never animate keyboard-initiated actions. These actions are repeated hundreds of times daily. Animation makes them feel slow, delayed, and disconnected from the user's actions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "Should this animate at all?"&lt;/p&gt;

&lt;p&gt;Question two demands a purpose from a list of five and rules that "it looks cool" on something seen often is a no. About half of the opening framework in a skill filed under polish is a brake, and that is the part an agent needs most, because an agent asked to make a component feel alive will otherwise animate everything it can reach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which easing curves does emil-design-eng ship?
&lt;/h2&gt;

&lt;p&gt;Question three routes entrances and exits to ease-out, on-screen movement to ease-in-out, hover and color changes to ease, constant motion to linear, then rejects the default shape of all four.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Critical: use custom easing curves. The built-in CSS easings are too weak. They lack the punch that makes animations feel intentional.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "What easing should it use?"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* Strong ease-out for UI interactions */&lt;/span&gt;
&lt;span class="nt"&gt;--ease-out&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cubic-bezier&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;23&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;32&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="c"&gt;/* Strong ease-in-out for on-screen movement */&lt;/span&gt;
&lt;span class="nt"&gt;--ease-in-out&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cubic-bezier&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;77&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;175&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="c"&gt;/* iOS-like drawer curve (from Ionic Framework) */&lt;/span&gt;
&lt;span class="nt"&gt;--ease-drawer&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cubic-bezier&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;32&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;72&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: SKILL.md, "What easing should it use?"&lt;/p&gt;

&lt;p&gt;One keyword is banned for interface work: "Never use ease-in for UI animations." The reason is mechanical. ease-in delays the initial movement, which is the moment the user watches most closely, and a rule with a mechanism is one an agent can extend to cases the file never lists. The same three values sit, identical, in at least four sibling files at the commit we read, so installing this skill next to animate, find-animation-opportunities, review-animations or improve-animations puts the constants in context twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does the duration table contradict its own rule?
&lt;/h2&gt;

&lt;p&gt;Question four is a five-row table: button press feedback 100-160ms, modals and drawers 200-500ms. Printed under it:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rule: UI animations should stay under 300ms. A 180ms dropdown feels more responsive than a 400ms one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "How fast should it be?"&lt;/p&gt;

&lt;p&gt;A drawer is a UI element, and the row three lines up allows it 500ms. A person reads 300ms as the default and 500ms as the allowance for the largest surfaces. The file never says so, and the closing checklist turns 300ms into a defect:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;| Duration &amp;gt; 300ms on UI element | Reduce to 150-250ms |&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "Review Checklist"&lt;/p&gt;

&lt;p&gt;So a 400ms drawer that question four permits gets flagged when the same skill reviews the code, with a fix band the duration table never offers drawers. An agent applies both halves as written.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does a review look like with emil-design-eng installed?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;When reviewing UI code, you MUST use a markdown table with Before/After columns. Do NOT use a list with "Before:" and "After:" on separate lines.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: SKILL.md, "Review Format (Required)"&lt;/p&gt;

&lt;p&gt;A five-row example follows, then a fenced block labelled as the wrong format, showing the list layout the author did not want. Printing the output you do not want is a correction aimed at a habit the author kept seeing. The Why column forces a reason per row, and an eleven-row issue-to-fix checklist closes the file, so a review has a mandated shape and a mandated sweep. Ask to "review my animation code" and the prose list you got before becomes a table, one row per issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Emil Kowalski skills should you install alongside it?
&lt;/h2&gt;

&lt;p&gt;The repo has 34,182 stars as of September 2, 2026 (Skillselion catalog). The ranked shortlist, installs as of the same date (Skillselion catalog):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Installs&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/emil-design-eng?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;emil-design-eng skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;243,573&lt;/td&gt;
&lt;td&gt;The reference corpus&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/emil-design-eng" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/review-animations?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;review-animations skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;133,796&lt;/td&gt;
&lt;td&gt;Audits existing motion, standards file beside it&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/review-animations" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/animation-vocabulary?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;animation-vocabulary skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;121,235&lt;/td&gt;
&lt;td&gt;Vague motion description to precise term&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/animation-vocabulary" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/apple-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;apple-design skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;114,701&lt;/td&gt;
&lt;td&gt;Gestures, springs, sheets&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/apple-design" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/improve-animations?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;improve-animations skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;106,122&lt;/td&gt;
&lt;td&gt;Read-only audit of shipped animation code, with fix plans&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/improve-animations" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/find-animation-opportunities?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;find-animation-opportunities skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;93,723&lt;/td&gt;
&lt;td&gt;Where motion is missing&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/find-animation-opportunities" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/pick-ui-library?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;pick-ui-library skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;77,984&lt;/td&gt;
&lt;td&gt;One opinionated component-library pick per task&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/pick-ui-library" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/emilkowalski/skills/prototype?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;prototype skill&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;66,855&lt;/td&gt;
&lt;td&gt;Several working versions of one UI piece behind a picker&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/emilkowalski/skills/tree/main/skills/prototype" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Should you install emil-design-eng?
&lt;/h2&gt;

&lt;p&gt;Install it if you want one opinionated reference in context for interaction work and would rather over-fetch than route. The brake is the strongest part, and the performance rules read like notes from shipped libraries rather than a style guide (the file names Sonner and Vaul, and cites a dropped-frames fix on the Vercel dashboard). Some passages are written for a person, such as testing gestures on a real phone over USB; an agent cannot execute those, so they hold up as reference a human consults through it.&lt;/p&gt;

&lt;p&gt;Skip it if your context budget is tight. It is the largest file in the repo, about 20 percent above apple-design at 22,715 bytes, and the only model-invocable skill there whose description has no "Use when" clause, so the biggest file has the weakest routing. Skip it too if you expected a design system; there is no color, spacing or layout guidance in it. For that half, the &lt;a href="https://skillselion.com/skills/leonxlnx/taste-skill/design-taste-frontend?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;design-taste-frontend skill&lt;/a&gt; and Anthropic's &lt;a href="https://skillselion.com/skills/anthropics/skills/frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;frontend-design skill&lt;/a&gt; sit beside it on the &lt;a href="https://skillselion.com/best/skills-for-frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;best skills for frontend design&lt;/a&gt; shortlist, ranked by real installs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add https://github.com/emilkowalski/skills &lt;span class="nt"&gt;--skill&lt;/span&gt; emil-design-eng
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;More files read this way: the &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=emil-design-eng-dive-sep-02" rel="noopener noreferrer"&gt;Skillselion Deep Dives series&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is emil-design-eng the same as the other Emil Kowalski skills?&lt;/strong&gt; No. The README lists it first as the main skill; the task-shaped siblings repeat the constants and the frequency framework they need, rewritten in their own words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much context does it cost?&lt;/strong&gt; 27,226 bytes at the commit we read, the largest SKILL.md in the repo, and the catalog lists it as the only file that ships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it work outside React?&lt;/strong&gt; The reasoning does. The samples assume CSS, React and Motion, so a Vue or Svelte codebase gets the rules and none of the copy-paste.&lt;/p&gt;

&lt;p&gt;Last updated September 2, 2026. Every quote verified against emilkowalski/skills, skills/emil-design-eng/SKILL.md (last commit July 21, 2026).&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>claude</category>
    </item>
    <item>
      <title>The number 2 most-installed agent skill is seven lines long and delegates all of them</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Sun, 30 Aug 2026 08:18:32 +0000</pubDate>
      <link>https://dev.to/skillselion/the-number-2-most-installed-agent-skill-is-seven-lines-long-and-delegates-all-of-them-76j</link>
      <guid>https://dev.to/skillselion/the-number-2-most-installed-agent-skill-is-seven-lines-long-and-delegates-all-of-them-76j</guid>
      <description>&lt;p&gt;At 1,005,653 installs, the second most-installed agent skill in our catalog is seven lines long. Not seven hundred. Seven. As of August 30, 2026, &lt;a href="https://skillselion.com/skills/mattpocock/skills/grill-me?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;Matt Pocock's grill-me skill&lt;/a&gt; trails only &lt;a href="https://skillselion.com/skills/vercel-labs/skills/find-skills?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the find-skills skill from Vercel Labs&lt;/a&gt;, which holds 3,170,600. The installed file writes no code and contains no method. Its one working instruction hands off to a sibling.&lt;/p&gt;

&lt;p&gt;Disclosure: we run &lt;a href="https://skillselion.com/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;, an independent catalog refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs. We read both files line by line at commit &lt;code&gt;885e2ca&lt;/code&gt; of mattpocock/skills on August 20, 2026, as part of &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;our deep dive series&lt;/a&gt;. Every quote below is from that commit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does the seven-line grill-me skill actually do?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Call the Skill tool with "grilling".
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source: SKILL.md, full file at &lt;a href="https://github.com/mattpocock/skills/tree/main/skills/productivity/grill-me" rel="noopener noreferrer"&gt;the grill-me folder in mattpocock/skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That is routing, not laziness. The repo keeps one method skill named grilling and points two trigger skills at it: grill-me for plans, and &lt;a href="https://skillselion.com/skills/mattpocock/skills/grill-with-docs?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the grill-with-docs skill&lt;/a&gt; for architecture decisions against a live codebase. grill-with-docs is itself at 856,939 installs, third in the catalog. The dependency matters when you install: seven lines have nothing to fall back on, so grill-me does nothing unless &lt;a href="https://skillselion.com/skills/mattpocock/skills/grilling?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the grilling skill&lt;/a&gt; is present too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why can the agent not start grill-me by itself?
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;disable-model-invocation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your agent cannot fire grill-me on its own. You say "grill me", or nothing happens. For a skill whose entire output is questions aimed at you, that is the right lock. The interesting part is where the lock is not: grilling, the method underneath, carries no such flag, and its description invites the agent to reach for it when you seem to want your thinking stress-tested. The trigger phrase belongs to you. The method keeps its own judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does grill-me structure its questions?
&lt;/h2&gt;

&lt;p&gt;The method models your plan as a tree where every decision branches into the decisions hanging off it. The set of questions whose prerequisites are already settled is called the frontier, and the agent asks the whole frontier in one numbered round:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;❓ Q1 - &amp;lt;question title&amp;gt;: &amp;lt;question body&amp;gt;&lt;br&gt;
➡️ &amp;lt;your recommended answer&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Each question ships with the agent's own recommendation, so you can answer "yes to your suggestion" instead of writing an essay. A question that depends on another still-open question belongs to a later round, explicitly. Every answered round reshapes the tree.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does grill-me avoid asking you to run ls?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Finding &lt;em&gt;facts&lt;/em&gt; is your job, never the user's.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;a href="https://github.com/mattpocock/skills/tree/main/skills/productivity/grilling" rel="noopener noreferrer"&gt;grilling SKILL.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anything the agent could look up in the environment, it dispatches a sub-agent to find instead of asking you. A running lookup counts as an unsettled prerequisite, so only the questions downstream of it wait while the rest of the frontier gets asked. You never get asked to run &lt;code&gt;ls&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The exit condition is testable rather than vibes based: the session ends when the frontier is empty, and even then the agent must not act until you confirm you have reached shared understanding.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changes once grill-me is installed?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;You say&lt;/th&gt;
&lt;th&gt;Without grill-me&lt;/th&gt;
&lt;th&gt;With grill-me&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Grill me on this plan"&lt;/td&gt;
&lt;td&gt;The agent agrees and starts building&lt;/td&gt;
&lt;td&gt;Numbered question rounds until no branch is silently assumed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"We should add a Postgres cache here"&lt;/td&gt;
&lt;td&gt;"Great idea", then an implementation&lt;/td&gt;
&lt;td&gt;The frontier fills with invalidation, the local dev story, and who owns the schema&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add https://github.com/mattpocock/skills &lt;span class="nt"&gt;--skill&lt;/span&gt; grill-me
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Install notes and the trigger vocabulary are in &lt;a href="https://skillselion.com/guides/grill-me-skill-claude-code-guide?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the grill-me guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do mattpocock/skills entries hold seven of the top ten?
&lt;/h2&gt;

&lt;p&gt;Look at the top ten by installs on August 30, 2026 and seven slots belong to skills from &lt;a href="https://github.com/mattpocock/skills" rel="noopener noreferrer"&gt;the mattpocock/skills repository&lt;/a&gt;. The tell is &lt;a href="https://skillselion.com/skills/mattpocock/skills/setup-matt-pocock-skills?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the setup-matt-pocock-skills skill&lt;/a&gt; at 734,383 installs in eighth place. That skill does nothing but scaffold the per-repo configuration the other skills assume: issue locations, triage labels, domain-doc layout. On its own it is useless. The likeliest read is that people install the author's stack rather than picking individual files. &lt;a href="https://skillselion.com/skills/mattpocock/skills/tdd?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;The tdd skill&lt;/a&gt; at 797,033 and &lt;a href="https://skillselion.com/skills/mattpocock/skills/improve-codebase-architecture?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the improve-codebase-architecture skill&lt;/a&gt; at 824,417 ride the same wave.&lt;/p&gt;

&lt;p&gt;The other pattern in that list: skills that stop the agent outrank skills that make it produce. The same shape shows up across &lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the August 2026 agent economy census&lt;/a&gt;. If you want to compare planning skills against each other, &lt;a href="https://skillselion.com/best/skills-for-docs-planning?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the docs and planning hub&lt;/a&gt; ranks that category, and &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=grill-me-dive-aug-30" rel="noopener noreferrer"&gt;the full skills catalog&lt;/a&gt; covers the rest.&lt;/p&gt;

&lt;p&gt;Install counts are live as of August 30, 2026. Quotes are from commit &lt;code&gt;885e2ca&lt;/code&gt;, verified August 20, 2026.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Vercel's web-design-guidelines skill is 39 lines long and contains zero rules</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Sat, 29 Aug 2026 08:04:00 +0000</pubDate>
      <link>https://dev.to/skillselion/vercels-web-design-guidelines-skill-is-39-lines-long-and-contains-zero-rules-m54</link>
      <guid>https://dev.to/skillselion/vercels-web-design-guidelines-skill-is-39-lines-long-and-contains-zero-rules-m54</guid>
      <description>&lt;p&gt;The UI review skill with 587,920 installs (August 29, 2026, Skillselion catalog) does not contain a single accessibility rule. &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/web-design-guidelines?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;web-design-guidelines, Vercel's UI review skill&lt;/a&gt;, is 39 lines including frontmatter, and every rule it checks lives in a second repository it fetches at review time, from a URL that tracks &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;We run &lt;a href="https://skillselion.com/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;, a directory of Claude Code, Codex and Cursor extensions ranked by real installs, and we read the skill file at commit &lt;code&gt;b8caa26&lt;/code&gt; of &lt;a href="https://github.com/vercel-labs/agent-skills" rel="noopener noreferrer"&gt;vercel-labs/agent-skills&lt;/a&gt; for our &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/web-design-guidelines?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29#deep-dive" rel="noopener noreferrer"&gt;deep dive on the skill&lt;/a&gt;. Here is what the architecture actually implies for your reviews.&lt;/p&gt;

&lt;h2&gt;
  
  
  The file is an instruction to go get instructions
&lt;/h2&gt;

&lt;p&gt;One sentence defines the whole design:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Both halves of a review live somewhere else: what to check, and how to print what you find. The repo's README advertises "100+ rules covering accessibility, performance, and UX", and that number appears nowhere in the skill file. It arrives by download when the review runs.&lt;/p&gt;

&lt;p&gt;That means the skill needs the network, and it asks for it by naming WebFetch, a Claude Code tool. In a sandboxed CI runner, or under an agent with no equivalent fetch tool, the skill still loads and still triggers, with nothing to check your code against.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rules changed on August 18 and your install did not
&lt;/h2&gt;

&lt;p&gt;The fetch target is &lt;code&gt;raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md&lt;/code&gt;. &lt;code&gt;main&lt;/code&gt; is a branch. GitHub's history for that path shows five commits, three of them dated August 18, 2026, adding accessibility and media rules and revising the curly-quote guidance.&lt;/p&gt;

&lt;p&gt;So a component that came back clean in July can come back with findings in August, and the diff that caused it sits in &lt;a href="https://github.com/vercel-labs/web-interface-guidelines" rel="noopener noreferrer"&gt;vercel-labs/web-interface-guidelines&lt;/a&gt;, a repository you do not depend on and were never asked to watch. Your rules improve when Vercel improves them, which is the defensible intent. The bill arrives as reproducibility: two reviews of unchanged code, weeks apart, can legitimately disagree.&lt;/p&gt;

&lt;p&gt;Teams that need a review to hold still have the usual escape hatch: vendor the rules file into your own repo and point the agent at your copy.&lt;/p&gt;

&lt;h2&gt;
  
  
  The sheet it fetches is missing the rules with numbers in them
&lt;/h2&gt;

&lt;p&gt;Vercel publishes three rule documents in the guidelines repo. Read on August 20, 2026: the README carries 129 rule bullets, AGENTS.md carries 107 written as MUST, SHOULD and NEVER, and &lt;code&gt;command.md&lt;/code&gt;, the one this skill hard-codes, carries 103.&lt;/p&gt;

&lt;p&gt;The coverage gap is not random. Under "Targets &amp;amp; Input", AGENTS.md holds two MUST rules the command sheet has no equivalent of: a hit target of at least 24px (44px on mobile), and a mobile input font size of at least 16px so iOS Safari stops zooming on focus. The command sheet also drops focus management, tooltip timing and most of the README's Design section.&lt;/p&gt;

&lt;p&gt;Ask this skill "are my tap targets big enough?" and you get a guess. The fetched sheet carries no minimum hit-target rule, and nothing in the report tells you the question was out of scope.&lt;/p&gt;

&lt;p&gt;What it does cover is worth having: ARIA labeling and semantic elements, focus-visible rings, form autocomplete, compositor-friendly animation, &lt;code&gt;Intl&lt;/code&gt; formatting, hydration-safe inputs. The gap is a subset problem, not a quality problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  It is a template, and the copies inherit Vercel's edits
&lt;/h2&gt;

&lt;p&gt;The same repo ships &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/writing-guidelines?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;writing-guidelines, the prose review skill&lt;/a&gt;: the same file with five lines changed (name, description, heading, summary, URL). Any raw markdown URL can become a review skill this way, and every skill built this way needs the network at review time and tracks a branch somebody else controls.&lt;/p&gt;

&lt;p&gt;Our &lt;a href="https://skillselion.com/research/agent-skill-clone-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;Agent Skill Clone Census&lt;/a&gt;, frozen at August 12, 2026, ranks web-design-guidelines the second most-copied original in the catalog: 36 identical or near-identical copies, behind Anthropic's frontend-design at 59. Each copy inherits the one URL, which points into a repository the copier does not control. The copies that keep that URL fetch Vercel's rules on every run and inherit Vercel's edits, which is an unusual property for a fork to have.&lt;/p&gt;

&lt;p&gt;Contrast the sibling skill in the same repo: &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/vercel-react-best-practices?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;vercel-react-best-practices, the React performance skill&lt;/a&gt;, ships 70 rule files on disk after install. Same author, opposite architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should you install it?
&lt;/h2&gt;

&lt;p&gt;Install it if you review UI in Claude Code and want the check driven by a published external standard instead of whatever the model feels strongly about that session. The rules on the other end are genuinely good, and the cost of keeping them current is one fetch per review.&lt;/p&gt;

&lt;p&gt;Skip it if your agent runs without network access, or if your reviews need to be reproducible. Vendor the sheet instead.&lt;/p&gt;

&lt;p&gt;If you want the generation-side counterpart, the guidelines repo pairs this skill with its AGENTS.md on purpose: the skill reviews what exists, AGENTS.md shapes what gets generated. Installing the skill does not put AGENTS.md in your project.&lt;/p&gt;

&lt;p&gt;For the taste-layer alternatives developers actually cross-shop, see &lt;a href="https://skillselion.com/best/skills-for-frontend-design?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;our hub of frontend design skills&lt;/a&gt;: &lt;a href="https://skillselion.com/skills/anthropics/skills/frontend-design?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;Anthropic's frontend-design&lt;/a&gt; generates UI under a design brief, &lt;a href="https://skillselion.com/skills/pbakaus/impeccable?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;impeccable&lt;/a&gt; applies Paul Bakaus's design playbooks, &lt;a href="https://skillselion.com/skills/nextlevelbuilder/ui-ux-pro-max-skill/ui-ux-pro-max?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;ui-ux-pro-max&lt;/a&gt; looks up palettes and WCAG rows, and &lt;a href="https://skillselion.com/skills/leonxlnx/taste-skill/design-taste-frontend?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;design-taste-frontend&lt;/a&gt; is the landing-page taste layer. web-design-guidelines is the only one of the five that generates nothing: it grades the files you already have.&lt;/p&gt;

&lt;p&gt;Every quote above is verified against the repository at the commit named, section by section, in &lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/web-design-guidelines?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29#deep-dive" rel="noopener noreferrer"&gt;the full deep dive&lt;/a&gt;. The dive series index is at &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;Deep Dives&lt;/a&gt;, and the full catalog at &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=wdg-dive-aug-29" rel="noopener noreferrer"&gt;the skills directory&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion. Counts come from our live catalog, refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Anthropic's frontend-design skill names the three cliché "AI looks", hex codes included</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Fri, 28 Aug 2026 08:22:40 +0000</pubDate>
      <link>https://dev.to/skillselion/anthropics-frontend-design-skill-names-the-three-cliche-ai-looks-hex-codes-included-f29</link>
      <guid>https://dev.to/skillselion/anthropics-frontend-design-skill-names-the-three-cliche-ai-looks-hex-codes-included-f29</guid>
      <description>&lt;p&gt;Anthropic ships an official Claude Code skill whose whole job is stopping your agent from designing the same page every other agent designs. It is called frontend-design, it is 55 lines of prose with no scripts and no component library, and it has 825,477 installs as of the August 27, 2026 Skillselion catalog sync, which makes it the third most-installed agent skill overall.&lt;/p&gt;

&lt;p&gt;We read the file line by line for the &lt;a href="https://skillselion.com/skills/anthropics/skills/frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28#deep-dive" rel="noopener noreferrer"&gt;frontend-design deep dive&lt;/a&gt; on its listing page. Disclosure: we run Skillselion, the directory the dive lives on.&lt;/p&gt;

&lt;p&gt;The part worth your attention is one paragraph in the middle. Anthropic describes, with a hex code, exactly what AI-generated design collapses into when nobody stops it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The paragraph to screenshot
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI-generated design right now clusters around three looks: (1) a warm cream background (near #F4F1EA) with a high-contrast serif display and a terracotta accent; (2) a near-black background with a single bright acid-green or vermilion accent; (3) a broadsheet-style layout with hairline rules, zero border-radius, and dense newspaper-like columns. All three are legitimate for some briefs, but they are defaults rather than choices."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Source: &lt;code&gt;SKILL.md&lt;/code&gt;, "Process" section, &lt;a href="https://github.com/anthropics/skills" rel="noopener noreferrer"&gt;anthropics/skills&lt;/a&gt; on GitHub. Quotes verified against the upstream file on August 19, 2026; the file last changed June 9, 2026.&lt;/p&gt;

&lt;p&gt;If you have shipped an agent-built landing page this year, you have probably shipped look number one.&lt;/p&gt;

&lt;h2&gt;
  
  
  A blacklist became a description, and that is the interesting engineering
&lt;/h2&gt;

&lt;p&gt;The earlier version of this skill banned aesthetics by name: Inter, Roboto, purple gradients on white. The rewrite drops the blacklist entirely and replaces it with descriptions of the failure modes. A banned-fonts list rots the day a new default font appears. A description of the cliché generalizes: the agent can recognize the cream-serif-terracotta pattern in any font, any framework, any year.&lt;/p&gt;

&lt;p&gt;That is a prompt-engineering pattern worth stealing for your own skills: describe the failure mode you want avoided instead of enumerating instances of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the other 50 lines do
&lt;/h2&gt;

&lt;p&gt;The file changes agent behavior in eight moves. The short version:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A focused trigger.&lt;/strong&gt; The frontmatter description scopes it to visual design for new or reshaped UI, so it does not fire on every request that touches pixels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A role with stakes.&lt;/strong&gt; "Approach this as the design lead at a small studio" whose client "has already rejected proposals that felt templated". The load-bearing line: "take one real aesthetic risk you can justify".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subject grounding.&lt;/strong&gt; If the brief is vague, the agent must pin a concrete subject, audience, and the page's single job before designing, out loud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Six design principles.&lt;/strong&gt; One paragraph each: hero as thesis, typography as personality, "Structure is information", motion as "an orchestrated moment", complexity matched to the vision, and copy as a principle of its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The calibration warning.&lt;/strong&gt; The three looks above.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A two-pass process.&lt;/strong&gt; Plan a compact token system (named palette, type pairing, layout, one signature element), then critique the plan for genericness before writing any code. Code comes third.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A restraint rule.&lt;/strong&gt; "Spend your boldness in one place", plus Chanel's mirror advice: remove one accessory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A writing chapter.&lt;/strong&gt; Roughly a fifth of the file is about words: "A person manages notifications, not webhook config", "Save changes" not "Submit", and errors that never apologize and are never vague.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The full walkthrough with every quoted section lives in the &lt;a href="https://skillselion.com/skills/anthropics/skills/frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;deep dive on the frontend-design listing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it will not do for you
&lt;/h2&gt;

&lt;p&gt;Two honest caveats from our read. It optimizes for distinctiveness, so on plain internal tools it can over-art-direct; constrain it with your own brief. And it contains almost no engineering: one CSS-specificity warning and a quality floor (responsive, keyboard focus, reduced motion), no accessibility depth, no performance budgets. It tells your agent what designed means, not how to ship it.&lt;/p&gt;

&lt;p&gt;One more thing to check before installing: a repackaged clone of this skill circulates under a different owner. Verify the repo owner is anthropics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it sits in the taste stack
&lt;/h2&gt;

&lt;p&gt;frontend-design is the biggest entry in a cluster of skills that all attack the same problem: agent output that looks generated. If you are building out a design-side setup, these are the neighbors, with installs as of the same August 27 catalog sync:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/mattpocock/skills/grill-me?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;Grill Me, the plan-interrogation skill&lt;/a&gt; by Matt Pocock, 985,753 installs. It now sits above frontend-design at number 2 overall; the two are often installed together, one for the plan, one for the pixels.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/uizze.com/anti-ui-slop?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;anti-ui-slop, the UI cliché blocker&lt;/a&gt;, 528,289 installs. The community's harder-edged answer to the same three looks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/vercel-labs/agent-skills/web-design-guidelines?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;web-design-guidelines by Vercel Labs&lt;/a&gt;, 582,881 installs. Built on explicit rules where frontend-design leans on a role; a useful contrast in approach.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/leonxlnx/taste-skill/design-taste-frontend?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;design-taste-frontend, the taste layer&lt;/a&gt;, 410,792 installs, and its sibling &lt;a href="https://skillselion.com/skills/leonxlnx/taste-skill/minimalist-ui?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;minimalist-ui skill&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/pbakaus/impeccable?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;impeccable, the frontend polish skill&lt;/a&gt;, 250,618 installs, for the final polish pass.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/skills/emilkowalski/skills/emil-design-eng?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;emil-design-eng, Emil Kowalski's design-engineering skill&lt;/a&gt;, 233,965 installs, for the motion-and-microinteraction end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We keep the whole category ranked by real installs on the &lt;a href="https://skillselion.com/best/skills-for-frontend-design?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;frontend design skills hub&lt;/a&gt;, and the section-by-section reads for other major skills in the &lt;a href="https://skillselion.com/deep-dives?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;Deep Dives library&lt;/a&gt;. If you want to see how a discovery skill does the instructions-only trick at even larger scale, the &lt;a href="https://skillselion.com/skills/vercel-labs/skills/find-skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;find-skills listing&lt;/a&gt; sits at 3,135,861 installs, and the broader &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=frontend-design-dive-aug-28" rel="noopener noreferrer"&gt;skills directory&lt;/a&gt; is refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs.&lt;/p&gt;

&lt;p&gt;Install line, if you want it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add https://github.com/anthropics/skills &lt;span class="nt"&gt;--skill&lt;/span&gt; frontend-design
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;825,477 installs, as of the August 27 sync, for a file that is mostly a client brief. Read the file before you let it art-direct you.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>claude</category>
    </item>
    <item>
      <title>8,433 MCP Servers, Zero Install Counts: What Star-Ranked MCP Lists Actually Measure</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Wed, 26 Aug 2026 02:48:22 +0000</pubDate>
      <link>https://dev.to/skillselion/8433-mcp-servers-zero-install-counts-what-star-ranked-mcp-lists-actually-measure-4afe</link>
      <guid>https://dev.to/skillselion/8433-mcp-servers-zero-install-counts-what-star-ranked-mcp-lists-actually-measure-4afe</guid>
      <description>&lt;p&gt;On 2026-08-14 we dumped every MCP server in the Skillselion catalog and counted what the rankings you read are made of. The result became the &lt;a href="https://skillselion.com/research/mcp-server-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;MCP Server Census&lt;/a&gt;: 8,433 servers from 5,392 publishers, and not one of them carries an install count.&lt;/p&gt;

&lt;p&gt;Disclosure: we run Skillselion, the directory this data comes from.&lt;/p&gt;

&lt;h2&gt;
  
  
  No install number exists. Not a low one, none at all.
&lt;/h2&gt;

&lt;p&gt;Agent skills report installs through public registries, which is how our &lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;Agent Economy Census&lt;/a&gt; can count 158M installs across 79,827 listings. MCP has no per-server install event. All 8,433 servers in the census carry no install figure. Partial signals exist (npm, PyPI and Docker download counters for servers shipped as packages), but nothing that covers the ecosystem.&lt;/p&gt;

&lt;p&gt;So every "top MCP servers" table you have seen ranks on something else. Usually stars.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stars belong to the repository, not the server
&lt;/h2&gt;

&lt;p&gt;79.8% of servers (6,731) map to a GitHub repository, and 175 repositories host more than one server, covering 969 servers. Each of those servers inherits the star count of whatever it ships inside.&lt;/p&gt;

&lt;p&gt;Concretely: the &lt;a href="https://skillselion.com/mcp/tool/io.github.metabase/mcp?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;Metabase MCP server&lt;/a&gt; shows 48,750 stars, which belong to the business-intelligence platform. The &lt;a href="https://skillselion.com/mcp/tool/io.github.PostHog/mcp?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;PostHog MCP server&lt;/a&gt; shows 37,662, earned by the analytics product. ByteDance's &lt;a href="https://skillselion.com/mcp/tool/io.github.bytedance/mcp-server-browser?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;UI-TARS browser MCP server&lt;/a&gt; inherits 38,581 stars from the desktop app it lives with. The top of a star-ranked MCP table is largely a list of whole products, with a server attached.&lt;/p&gt;

&lt;h2&gt;
  
  
  The inequality is close to the theoretical maximum
&lt;/h2&gt;

&lt;p&gt;Run a Gini coefficient across the star counts of all 8,433 servers and it comes out at 0.986. The top 1% (84 servers) hold 89.1% of every star in the ecosystem. The top ten alone hold 43.6%. Meanwhile 54.9% of servers have never been starred once, and the median starred server holds 5.&lt;/p&gt;

&lt;p&gt;Publish an MCP server today and the most likely measurable outcome is silence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The code is alive anyway
&lt;/h2&gt;

&lt;p&gt;Half the catalog having zero stars sounds like abandonware. The push dates disagree: of the 5,926 servers with a last-push date, the median pushed about 50 days ago, and 43.4% pushed within the last 30 days. Only 6.2% of dated servers have gone six months untouched. Stars measure visibility. They do not measure whether anyone is working on the thing. We ran the same test on agent skills in the &lt;a href="https://skillselion.com/research/agent-skill-maintenance-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;Maintenance Census&lt;/a&gt; and found the same disconnect.&lt;/p&gt;

&lt;h2&gt;
  
  
  87.3% of publishers ship exactly one server
&lt;/h2&gt;

&lt;p&gt;5,392 publishers account for the census, and 4,707 of them published a single server. The ten largest publishers together hold only 11.27% of all servers, nothing like the suite concentration in the skill economy. The largest publisher by volume, CSOAI-ORG, ships 192 servers that hold 15 stars between them. Volume is cheap here. Being noticed is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check instead of stars
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Recency: last push under 60 days beats a four-digit star count from a repo the server shares. The &lt;a href="https://skillselion.com/mcp?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;MCP server directory&lt;/a&gt; exposes recency per listing, and the &lt;a href="https://skillselion.com/best/mcp-servers-for-build?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;ranked MCP servers for the build stage&lt;/a&gt; apply it.&lt;/li&gt;
&lt;li&gt;Repo scope: check whether the stars are for the server or for a product it ships inside.&lt;/li&gt;
&lt;li&gt;Audit trail: our &lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;Security Census&lt;/a&gt; found most of the ecosystem has never been audited; the &lt;a href="https://skillselion.com/research/agent-skill-clone-census-2026-08?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;Clone Census&lt;/a&gt; measures how much of it is copies.&lt;/li&gt;
&lt;li&gt;Publisher shape: a one-server publisher and a 192-server publisher carry different maintenance expectations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every number above is frozen to 2026-08-14 so you can check it; the dataset and limits are in the &lt;a href="https://skillselion.com/research/methodology?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-census-aug-26" rel="noopener noreferrer"&gt;research methodology&lt;/a&gt;. Our catalog is not the whole ecosystem (PulseMCP reported 22,070 servers the same day), which is exactly why none of these numbers claims to measure usage.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Nearly half of all AI agent skill installs run on code pushed in the last 7 days</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Sat, 15 Aug 2026 17:32:50 +0000</pubDate>
      <link>https://dev.to/skillselion/nearly-half-of-all-ai-agent-skill-installs-run-on-code-pushed-in-the-last-7-days-a44</link>
      <guid>https://dev.to/skillselion/nearly-half-of-all-ai-agent-skill-installs-run-on-code-pushed-in-the-last-7-days-a44</guid>
      <description>&lt;p&gt;Disclosure: I work on &lt;a href="https://skillselion.com/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;, an independent directory of Claude Code, Codex and Cursor extensions, not affiliated with Anthropic, OpenAI or Cursor. This post is built entirely on a public dataset we published and froze, so you can check every number yourself.&lt;/p&gt;

&lt;p&gt;We expected a graveyard. We read the last-push date of the repository behind every listing in our catalog, 79,848 of them, and got the opposite result. &lt;strong&gt;Weight every listing by its installs and take the median: the code behind it was pushed six days before the census date.&lt;/strong&gt; 79,875,458 installs, 48.5% of all installs in the census, sit on repositories pushed within the previous seven days. 66.8% sit on code pushed within the previous month. The unweighted median listing is 26 days old, so the code people actually install is fresher than the catalog at large.&lt;/p&gt;

&lt;p&gt;The full study, with the frozen numbers and the CSV, is &lt;a href="https://skillselion.com/research/agent-skill-maintenance-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Skill Maintenance Census&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Half the catalog idles, and almost nobody installs it
&lt;/h2&gt;

&lt;p&gt;The tail behaves nothing like the core.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Staleness cutoff&lt;/th&gt;
&lt;th&gt;Share of dated listings&lt;/th&gt;
&lt;th&gt;Share of installs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No push in 30 days&lt;/td&gt;
&lt;td&gt;47.9%&lt;/td&gt;
&lt;td&gt;23.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No push in 90 days&lt;/td&gt;
&lt;td&gt;28.2%&lt;/td&gt;
&lt;td&gt;2.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No push in 180 days&lt;/td&gt;
&lt;td&gt;9.5%&lt;/td&gt;
&lt;td&gt;1.0%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Idle code exists in bulk, but almost nobody installs it. At the 90 day cutoff more than a quarter of dated listings qualifies as quiet, and all of it together accounts for 2.6% of installs.&lt;/p&gt;

&lt;p&gt;The two largest stale listings in the census are humanizer-zh at 43,355 installs and 204 days, and design-doc-mermaid at 32,625 installs and 225 days. Both are small next to anything in the live core of the &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;skills catalog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three listings out of 75,800 went a year without a push
&lt;/h2&gt;

&lt;p&gt;That is not a typo. Exactly three, and between them they hold zero installs.&lt;/p&gt;

&lt;p&gt;This is a young distribution format. It took off in late 2025 and has not existed long enough to decay. The honest reading cuts both ways: nothing here has survived long enough to prove it lasts either. The 180 day bucket, 9.5% of dated listings today, is the number worth watching edition over edition.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable one: the risky code is the fresh code
&lt;/h2&gt;

&lt;p&gt;If you assume unmaintained code is where the security risk lives, this dataset disagrees.&lt;/p&gt;

&lt;p&gt;Cross this census with our &lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;security census&lt;/a&gt; and the overlap of listings that are stale past 180 days, shell-capable, and never audited by any provider comes to 208 listings holding 7,335 installs. The security census's full audit blind spot holds 15,858,667 installs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So more than 99% of the unaudited, shell-capable install mass sits on actively maintained code.&lt;/strong&gt; Waiting for a repository to go quiet before you worry about it will not find the exposure, because almost none of it is there.&lt;/p&gt;

&lt;p&gt;If you audit agent extensions, that reorders the queue: sort by install count and permission surface, not by last commit date. The &lt;a href="https://skillselion.com/category/security?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;security category&lt;/a&gt; hub lists the tooling side of that job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does a recent push mean a skill is safe?
&lt;/h2&gt;

&lt;p&gt;No. Two limits, stated because they change how you should cite this.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pushed_at&lt;/code&gt; is repository level. A monorepo holding fifty skills refreshes all fifty with one commit, so per-skill freshness is overstated wherever large multi-skill repositories dominate. Staleness stays reliable in the other direction: an untouched repository is untouched for every skill inside it.&lt;/p&gt;

&lt;p&gt;And a push timestamp measures activity, not quality or safety. All it tells you is that someone was in the repository recently.&lt;/p&gt;

&lt;p&gt;75,800 listings, 94.9% of the catalog and 90.6% of installs, carry a usable date and form the denominator for every staleness figure here. 259 rows report an epoch-zero timestamp, a registry artifact, and are excluded along with the remaining undated rows.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rest of the series
&lt;/h2&gt;

&lt;p&gt;Each of these is a frozen edition with its own downloadable dataset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Skill Security Census&lt;/a&gt; covers who audits agent skills and what the five providers disagree about.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/research/agent-use-case-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Use-Case Census&lt;/a&gt; covers what people actually point agents at.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/research/agent-skill-clone-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Skill Clone Census&lt;/a&gt; covers duplication and forks across the catalog.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Economy Census&lt;/a&gt; covers publisher concentration and the install Gini.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://skillselion.com/research/ai-agent-statistics?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The State of AI Agent Skills 2026&lt;/a&gt; carries the live totals rather than a frozen edition.&lt;/li&gt;
&lt;li&gt;Everything else sits on the &lt;a href="https://skillselion.com/research?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;research index&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you would rather browse than read, the &lt;a href="https://skillselion.com/mcp?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;MCP servers&lt;/a&gt; and &lt;a href="https://skillselion.com/marketplaces?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;marketplaces&lt;/a&gt; listings are the two ranked shortlists worth starting from, and the &lt;a href="https://skillselion.com/category/ai-agents?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;AI and agents category&lt;/a&gt; is the closest hub to this dataset.&lt;/p&gt;

&lt;p&gt;Sources: live catalog, refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs.&lt;/p&gt;

&lt;p&gt;The census CSV is CC BY 4.0. Numbers are frozen to 2026-08-12, so anything you quote stays checkable. The full edition, the per-cutoff tables and the CSV are at &lt;a href="https://skillselion.com/research/agent-skill-maintenance-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=maintenance-census-aug-14" rel="noopener noreferrer"&gt;The Agent Skill Maintenance Census&lt;/a&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Skillselion Agent Skill Maintenance Census, August 2026
https://skillselion.com/research/agent-skill-maintenance-census-2026-08
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;One thing I want to hear from this comment section: when you vet an agent skill before installing it, do you look at the last commit date at all? If yes, what does it change for you?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>programming</category>
      <category>claudecode</category>
    </item>
    <item>
      <title>87.8% of AI Agent Skills Have Never Been Audited: 41,791 Verdicts Across 79,848 Listings</title>
      <dc:creator>Skillselion</dc:creator>
      <pubDate>Thu, 13 Aug 2026 08:25:05 +0000</pubDate>
      <link>https://dev.to/skillselion/878-of-ai-agent-skills-have-never-been-audited-41791-verdicts-across-79848-listings-5798</link>
      <guid>https://dev.to/skillselion/878-of-ai-agent-skills-have-never-been-audited-41791-verdicts-across-79848-listings-5798</guid>
      <description>&lt;p&gt;Security audits of AI agent skills go where the installs are: the audited 12.2% of listings holds 83.3% of all installs, and the other 70,090 listings have no published review at all.&lt;/p&gt;

&lt;p&gt;That is the core finding of the &lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Agent Skill Security Census&lt;/a&gt;, a frozen-edition study published this week. Disclosure: I run &lt;a href="https://skillselion.com/research?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;, the independent directory behind the census. It is not affiliated with Anthropic, OpenAI, or Cursor. Every number below is frozen to August 12, 2026, and you can re-derive all of it from the CSV linked on the census page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this week, of all weeks
&lt;/h2&gt;

&lt;p&gt;Agent security stopped being theoretical this month. At Black Hat USA 2026 on August 5, researchers from Novee Security showed that an unprivileged GitHub issue could reach CI runner secrets in the vendors' own repositories for Claude Code and Gemini CLI, and on OpenAI's Codex repository could hijack the next agent run. The Claude Code flaw, &lt;a href="https://thehackernews.com/2026/08/claude-code-and-gemini-cli-flaws-let.html" rel="noopener noreferrer"&gt;CVE-2026-54316&lt;/a&gt;, abused Hugging Face's public download counter as a covert channel, leaking an API key character by character. It was fixed in Claude Code 2.1.163. The Gemini CLI bug scored a perfect CVSS 10.0.&lt;/p&gt;

&lt;p&gt;In the same stretch, the Claude Code v2.1.228 release &lt;a href="https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;hardened skills synced from claude.ai&lt;/a&gt;: synced skills can no longer shadow local commands or MCP prompts, their descriptions are sanitized and labeled, and their bodies no longer run &lt;code&gt;!&lt;/code&gt; commands or expand &lt;code&gt;@&lt;/code&gt; files on your machine.&lt;/p&gt;

&lt;p&gt;Vendors patched the harnesses this month. Nobody had measured the skill ecosystem itself, so we did.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the census counted
&lt;/h2&gt;

&lt;p&gt;The census is a complete dump of the Skillselion production catalog taken on August 12, 2026: 79,848 listings and 164,841,042 cumulative installs, drawn from a live catalog refreshed daily from skills.sh, GitHub and MCP registries, ranked by real installs. On top of that catalog sit 41,791 audit verdicts published by 5 independent providers: Socket, Snyk, Gen Agent Trust Hub, ZeroLeaks and Runlayer. The census counts each listing's worst verdict as its risk level and never re-scores anything itself.&lt;/p&gt;

&lt;p&gt;For the market-shape numbers behind the same catalog, the companion &lt;a href="https://skillselion.com/research/agent-economy-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Agent Economy Census&lt;/a&gt; is the place to look, and the live-updating totals live in &lt;a href="https://skillselion.com/state-of-ai-agent-skills-2026?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;The State of AI Agent Skills 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Audits follow installs, almost nowhere else
&lt;/h2&gt;

&lt;p&gt;9,758 listings, 12.2% of the census, carry at least one audit. That thin slice holds 137,238,408 installs, which is 83.3% of every install counted. The median audited listing has about 1,700 installs. The median unaudited one has 7.&lt;/p&gt;

&lt;p&gt;Auditors triage by popularity. That is rational, and it genuinely protects the crowd: five out of six installs land on code somebody has reviewed. It also means 70,090 listings sit in the dark, and the census puts it bluntly: "If you install from the long tail, you are the review."&lt;/p&gt;

&lt;h2&gt;
  
  
  More than half of audited skills carry flags
&lt;/h2&gt;

&lt;p&gt;Take the worst verdict each audited listing received and 55.7% land at MEDIUM or above. 1,346 listings are flagged HIGH or CRITICAL, and together they hold 15,221,597 installs. 1,366 listings, 14.0% of everything audited, fail at least one provider's audit outright.&lt;/p&gt;

&lt;p&gt;A flag records capability and findings: shell execution, browser control, network reach. The census is explicit that a flag is never an accusation of malice, and the next section shows why that distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The flagged list includes every major vendor
&lt;/h2&gt;

&lt;p&gt;The most striking table in the study is who shows up flagged. These are per-listing public verdicts, visible on each listing page:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Publisher&lt;/th&gt;
&lt;th&gt;Worst verdict&lt;/th&gt;
&lt;th&gt;Installs&lt;/th&gt;
&lt;th&gt;Listing&lt;/th&gt;
&lt;th&gt;Repo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;azure-validate&lt;/td&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;td&gt;CRITICAL&lt;/td&gt;
&lt;td&gt;517,228&lt;/td&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/microsoft/azure-skills/azure-validate?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/microsoft/azure-skills" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;agent-browser&lt;/td&gt;
&lt;td&gt;Vercel Labs&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;td&gt;659,465&lt;/td&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/vercel-labs/agent-browser?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/vercel-labs/agent-browser" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;skill-creator&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;td&gt;348,833&lt;/td&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/anthropics/skills/skill-creator?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/anthropics/skills" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pdf&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;td&gt;177,212&lt;/td&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/anthropics/skills/pdf?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/anthropics/skills" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;playwright-cli&lt;/td&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;td&gt;HIGH&lt;/td&gt;
&lt;td&gt;116,690&lt;/td&gt;
&lt;td&gt;&lt;a href="https://skillselion.com/skills/microsoft/playwright-cli?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;Skillselion&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/microsoft/playwright-cli" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;By publisher, ByteDance Lark leads flagged install mass with 9 flagged listings and 2,440,132 installs, ahead of Microsoft (14 flagged listings, 1,153,302 installs), Vercel (24, 731,729), Anthropic (13, 577,993), Google (11, 94,343) and OpenAI (12, 50,785).&lt;/p&gt;

&lt;p&gt;Read those flags correctly. A CRITICAL on azure-validate describes what a deploy-validation tool can reach, and a HIGH on a browser driver tracks the fact that it drives a browser. Risk in this ecosystem concentrates in the most useful, most installed code, whoever publishes it. That is exactly why "big vendor" is a poor proxy for "nothing to review."&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do before you install a skill
&lt;/h2&gt;

&lt;p&gt;Concrete steps that follow from the data, frozen date and all:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check the listing's audit verdicts first. 99.6% of audited listings carry verdicts from at least two providers, so a popular skill with zero verdicts is a signal in itself. Start from the &lt;a href="https://skillselion.com/category/security?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;security category&lt;/a&gt; or the &lt;a href="https://skillselion.com/skills?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;full skills catalog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Read declared permissions. Shell plus network in one skill means code that can both execute commands and phone out. The census found 2,754 such listings carrying 51,755,286 installs.&lt;/li&gt;
&lt;li&gt;Treat an unaudited long-tail skill as unreviewed code, because that is what it is. The median unaudited listing has 7 installs; nobody went before you.&lt;/li&gt;
&lt;li&gt;If your agent loads skills at runtime over &lt;a href="https://skillselion.com/mcp?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;MCP&lt;/a&gt;, the same questions apply to the server you connect.&lt;/li&gt;
&lt;li&gt;Unfamiliar with the audit vocabulary? The &lt;a href="https://skillselion.com/glossary?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;glossary&lt;/a&gt; covers the terms the verdicts use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reproduce it yourself
&lt;/h2&gt;

&lt;p&gt;The full dataset, 79,848 rows with per-provider verdicts, worst risk level, declared permissions and installs, is downloadable from the &lt;a href="https://skillselion.com/research/agent-skill-security-census-2026-08?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=security-census-aug-13" rel="noopener noreferrer"&gt;census page&lt;/a&gt; under CC BY 4.0 (1.8 MB gzipped). Cite it as "Skillselion Agent Skill Security Census, August 2026". The methodology section on the page spells out the limits, including that declared permissions are documentation claims rather than sandbox measurements.&lt;/p&gt;

&lt;p&gt;The week's CVEs got patched. The 70,090 unreviewed listings are still there, and they will still be there next week. Knowing which side of the 12.2% line a skill sits on takes about ten seconds. After this week, it seems worth the ten seconds.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>opensource</category>
      <category>claudecode</category>
    </item>
  </channel>
</rss>
