<?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: Moby</title>
    <description>The latest articles on DEV Community by Moby (@whaleharness).</description>
    <link>https://dev.to/whaleharness</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%2F4089700%2F998d4d53-868e-49ec-9d55-f36d09a21077.png</url>
      <title>DEV Community: Moby</title>
      <link>https://dev.to/whaleharness</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/whaleharness"/>
    <language>en</language>
    <item>
      <title>How We Verify DSH Plugins</title>
      <dc:creator>Moby</dc:creator>
      <pubDate>Sat, 22 Aug 2026 13:23:31 +0000</pubDate>
      <link>https://dev.to/whaleharness/how-we-verify-dsh-plugins-855</link>
      <guid>https://dev.to/whaleharness/how-we-verify-dsh-plugins-855</guid>
      <description>&lt;p&gt;DeepSeek Harness (DSH) plugins are just npm packages that patch an agent profile — small, powerful, and easy to ship. That ease is exactly why an open plugin store needs a verification process you can actually check. At &lt;a href="https://whaleharness.com" rel="noopener noreferrer"&gt;WhaleHarness&lt;/a&gt; we run one on a simple bet: &lt;strong&gt;trust neither the author nor the reviewer — trust the record.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This post explains how we verify plugins, with the live numbers and public artifacts behind them. Everything below is on the site and machine-readable; none of it is a marketing claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  The two trust failures a plugin store actually faces
&lt;/h2&gt;

&lt;p&gt;A plugin directory worries about two different kinds of failure. The first is a &lt;strong&gt;bad plugin&lt;/strong&gt;: something that calls out to the network, reads credentials off disk, or fakes what it returns to the model. The second is a &lt;strong&gt;bad review&lt;/strong&gt;: when authors wait on a private queue, they cannot tell whether their submission is being judged fairly or silently dropped.&lt;/p&gt;

&lt;p&gt;Most stores fix the first problem with manual review and hope the second never comes up. We inverted the design: the review itself is public.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 — a public submission box
&lt;/h2&gt;

&lt;p&gt;Every submission lands in a public HTTP PUT endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://whaleharness.com/submit/whalepod2026/&amp;lt;name&amp;gt;-&amp;lt;version&amp;gt;.tgz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It accepts only &lt;code&gt;.tgz&lt;/code&gt; / &lt;code&gt;.tar.gz&lt;/code&gt;, only a single file, and only up to 5 MB — anything else returns 404. Everything that lands is publicly readable through an autoindex. There is no account, no queue, and no black box to wait inside. An author who claims "I was never told why it failed" is refuted by the public directory; a store that claimed rigor but shipped a dangerous plugin would be refuted by the same directory. The record is the authority, not either party.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 — automated checks first, one veto
&lt;/h2&gt;

&lt;p&gt;Every submission runs mechanical checks before any human looks at it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Structure&lt;/strong&gt; — a standard npm package with &lt;code&gt;package.json&lt;/code&gt;, a &lt;code&gt;dsh.bundle.patch&lt;/code&gt; declaration, and a &lt;code&gt;cordis.patch.yml&lt;/code&gt; that inserts only the plugin's own id. The plugin name must be unique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependencies&lt;/strong&gt; — &lt;code&gt;peerDependencies&lt;/code&gt; may list only official &lt;code&gt;@deepseek-ai/*&lt;/code&gt; packages. Any other npm dependency must be justified in the README and is assessed by a human.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Danger patterns (any single hit vetoes)&lt;/strong&gt; — network exfiltration, &lt;code&gt;eval&lt;/code&gt; / &lt;code&gt;child_process&lt;/code&gt;, reading credentials or sensitive paths, or content that impersonates the store or fakes provenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These checks are a floor, not a guarantee. Whatever passes still gets installed, booted, and called end-to-end in a real DSH with a throwaway &lt;code&gt;DSH_HOME&lt;/code&gt; — in an isolated low-privilege sandbox that contains a &lt;strong&gt;honeypot credential&lt;/strong&gt;, a fake secret planted where a malicious plugin would look. A plugin that tries to steal has nothing to gain and leaves evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 — a five-tier ecosystem audit, every six hours
&lt;/h2&gt;

&lt;p&gt;The store is one thing; the wider ecosystem is another. Every 6 hours an automated pipeline audits third-party DSH plugin repos, not just our listings. Each repo is pinned to a repo + commit + version and given a tiered verdict:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RED-LINE&lt;/strong&gt; — a safety red line was hit; a design problem that needs a rewrite or an appeal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FORMAT-ISSUE&lt;/strong&gt; — fixable; the rejection note says exactly what to change&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PASS&lt;/strong&gt; — passes static review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UNEVALUATED&lt;/strong&gt; — cannot be evaluated (e.g. missing package.json)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EXCLUDED&lt;/strong&gt; — out of scope&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live tally (generated 2026-08-22 06:43 UTC, straight from &lt;a href="https://whaleharness.com/audit.json" rel="noopener noreferrer"&gt;audit.json&lt;/a&gt;): &lt;strong&gt;1,271 repos audited&lt;/strong&gt; — 171 RED-LINE · 388 FORMAT-ISSUE · 505 PASS · 1 EXCLUDED · 206 UNEVALUATED. Among the 1,065 evaluated, the pass rate is 47.4%. Most failures are format issues with a published fix path — the &lt;a href="https://whaleharness.com/audit-fixes.html" rel="noopener noreferrer"&gt;audit page&lt;/a&gt; tells every author exactly what to change. The pipeline is fully public: machine-readable JSON, a human-readable report, an Atom feed, per-repo badges, and a 24-hour appeal SLA on GitHub Discussions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 — reproducible build, pinned by sha256
&lt;/h2&gt;

&lt;p&gt;Every store listing is built reproducibly from public source (&lt;code&gt;source.repo&lt;/code&gt; + commit) and pinned by &lt;strong&gt;sha256&lt;/strong&gt; in &lt;a href="https://whaleharness.com/plugins.json" rel="noopener noreferrer"&gt;plugins.json&lt;/a&gt;. What you download is what we verified. The store's &lt;strong&gt;165 plugins&lt;/strong&gt; are all boot-verified and checksum-pinned; the ~1,271 audited repos are static-reviewed, and the depth of verification is stated per plugin in &lt;a href="https://whaleharness.com/agent.json" rel="noopener noreferrer"&gt;agent.json&lt;/a&gt; — installers are told the verification level before they install, not after.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real cases, all on the record
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://whaleharness.com/p/whale-breathe" rel="noopener noreferrer"&gt;whale-breathe&lt;/a&gt; by kwawa — the first community submission to be rejected and then fixed. The rejection note said exactly what was wrong; the fixed version passed and shipped.&lt;/li&gt;
&lt;li&gt;whale-digest, same author — the first submission to pass on the first try.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://whaleharness.com/p/dsh-whale-fortune" rel="noopener noreferrer"&gt;dsh-whale-fortune&lt;/a&gt; — our own reviewer was wrong once (a schema rule that only applied to one registration path). We revised the rule and published an apology next to the review. Process bugs get fixed publicly too.&lt;/li&gt;
&lt;li&gt;Anionex/dsh-vision-toolkit#33 — a false positive corrected on appeal within the SLA.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest limits
&lt;/h2&gt;

&lt;p&gt;Static review does not boot your plugin; sandbox verification does, but it cannot prove a plugin is "safe" in any absolute sense — it makes the process checkable by anyone. Curation does not scale: a human still reads every dependency note. Review is promised within 72 hours, not minutes. And a public record cannot make a plugin safe — it can only make the process checkable. That is the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it from the other side
&lt;/h2&gt;

&lt;p&gt;Authors can submit without touching a terminal: install &lt;a href="https://whaleharness.com/p/whale-submit" rel="noopener noreferrer"&gt;whale-submit&lt;/a&gt; and ask the model to pack a directory and PUT it to the box. Everything — submissions, verdicts, build log — is public:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store: &lt;a href="https://whaleharness.com" rel="noopener noreferrer"&gt;whaleharness.com&lt;/a&gt; — 165 plugins, all sha256-pinned&lt;/li&gt;
&lt;li&gt;Submission box: &lt;a href="https://whaleharness.com/submissions/" rel="noopener noreferrer"&gt;whaleharness.com/submissions/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Audit (machine-readable): &lt;a href="https://whaleharness.com/audit.json" rel="noopener noreferrer"&gt;whaleharness.com/audit.json&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source &amp;amp; discussions: &lt;a href="https://github.com/WhaleHarness/WhaleHarness" rel="noopener noreferrer"&gt;github.com/WhaleHarness/WhaleHarness&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;航 (Hang), growth operator at &lt;a href="https://whaleharness.com" rel="noopener noreferrer"&gt;WhaleHarness&lt;/a&gt;, a bilingual plugin store for DeepSeek Harness. All numbers above are from the live site as of 2026-08-22 06:43 UTC; the pipeline re-runs every 6 hours and the live count is authoritative.&lt;/em&gt;&lt;/p&gt;

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