← Back to home@ice5kysl

dsh-insights

DSH Insights — the DeepSeek Harness ecosystem observatory: full-corpus plugin discovery, manifest-gated authoritative set, objective health scores (S/A–D), official dynamics, author analytics, weekly ecosystem reports, open data + badges. Zero-dependency Node pipeline.

Stars
1
Language
JavaScript
Created
Sep 5, 2026
Updated
Oct 20, 2026

Introduction

DSH Insights — The DeepSeek Harness Ecosystem Observatory

Live: https://dsh-insights.com/?utm_source=github&utm_medium=readme · This repo = pipeline + site + open data (ice5kysl/dsh-insights) Plugin health · Official dynamics · Ecosystem trends — full-ecosystem indexing → authenticity gate → objective health scores (evidence attached) → channel coverage → letters to authors → weekly report → official-dynamics snapshots (+ rc compat radar, M2). Zero-dependency Node. Open and reproducible.

English (default) · 简体中文 · Docs: Vision · Roadmap · Product Plan · Product Design · Research · Schema · Outreach · Author self-check CLI: dsh-insights-kit (npx dsh-insights-kit selfcheck <dir>)

Why

The dsh-plugin topic went from zero to 13,700+ repos in about a month. Discovery is solved (awesome lists, marketplaces) — trust is not: duplicates, abandoned forks, non-installable bundles and compat risk are the real user cost, and nobody scores any of it. The official directory explicitly opts out of ranking.

DSH Insights is the missing evaluation layer: every plugin gets an honest, reproducible number.

The three layers

LayerWhatDelivered as
L1 · Plugin insightsAuthenticity gate (manifest) → authoritative set → health score S–D / 0–100 (health-v6, per-deduction evidence) → channel coverage → "quality unlisted" listSnapshot data + site + per-plugin pages + letters
L2 · Official dynamics (v0 live)dsh releases/rc cadence, dist-tags, DeepSeek platform signals, API model list (/models probe, new-model detection); rc compat radar (M2)/dynamics + weekly official section
L3 · Ecosystem reportsWeekly report (every Monday, CI-generated; covers the just-completed ISO week) + a "letter to the author" per plugin (outreach material)/weekly + RSS + data/reports/

Not another directory or marketplace — a data & observation source for directories, marketplaces, agents and the dsh team to build on.

Site

Home (search + KPI + latest arrivals + scenario shortcuts) · Dashboard (trends/quality/rankings + full plugin library #browse) · Plugin pages /p/<owner>/<repo>/ (objective data for every authoritative plugin) · Scenarios · Authors · Weekly (reader with MD/PDF/PNG export) · Dynamics · Badges · Open data · About/methodology · RSS. Dark/light theme toggle, readable without JS, llms.txt for agents.

Data outputs (open)

FileWhat
data/plugins.jsonl · invalid.jsonlAuthoritative set 15,681 + 5,262 noise buckets (0 duplicates · hard gate · 2026-10-19 snapshot, validation still rolling)
data/insights.json + insights.schema.jsonAgent contract (stable URL, additive-only schema)
data/analysis.json · enrich.json · plugins.csvAggregates / per-plugin scores+channels / spreadsheet
data/dynamics.json · metrics.jsonlOfficial-dynamics snapshot · product self-metrics
data/crash-corpus.jsonCrash-report signature corpus (aggregated from dsh-why --share reports in db9; count = user reports only, cold-start seeds are split into seededCount; skipped without DB9_TOKEN)
data/compat.json · compat-observed.json · shell-seeds.jsonDeclared compat signals (engines.dsh) · observed compat matrix (client requires × shell module table) · shell seed words
data/llm.jsonl · data/reports/*.md · data/weekly/*.mdLLM capability tags · letters to authors · weekly issues

License: code MIT · data CC BY 4.0 (attribution: dsh-insights.com). Repo metadata (descriptions etc.) remains © its original authors.

Pipeline

collect    discover (sharded full crawl) · npm-map · lists · downloads · dynamics · refresh (metadata merge)
validate   validate (authenticity → set/buckets, resumable) · regress (calibration gate) · deep (sampled write-face/sanitizer)
analyze    analyze (→ enrich) · score · history · compat · overlap · llm-tags · scenarios
publish    site (dashboard) · pages (home/p/weekly/dynamics/scenarios/authors/badge/data/about) · exports · badges · diff · db9-sync (mirror plugins/downloads/scores/compat-observations/llm-tags/metrics/ecosystem-events/weekly-letters/invalid-candidates to db9, incl. plugin-level event diff: created/release/archived/first-publish; skipped without DB9_TOKEN)
content    letters (outreach material) · weekly

One orchestrator (bin/pipeline.mjs):

node bin/pipeline.mjs daily      # CI daily (light refresh)
node bin/pipeline.mjs monday     # daily + discover/refresh + author-graph + metrics + letters + weekly (CI Mondays; `friday` kept as alias)
node bin/pipeline.mjs snapshot   # analyze → publish full chain
node bin/pipeline.mjs full       # discovery → validation → snapshot
node bin/pipeline.mjs --only score,badges / --from analyze / --dry

Quick start:

GITHUB_TOKEN="$(gh auth token)" node bin/pipeline.mjs full   # first full run
node bin/query.mjs --sort stars --top 10                     # query the set
node bin/recheck.mjs owner/repo                              # force re-validate one plugin
node bin/check-docs.mjs                                      # README ↔ data reconciliation
node bin/backfill-events.mjs                                 # one-off: backfill full release/npm history into db9 ecosystem_events (idempotent)
node bin/backfill-plugin-events.mjs                          # one-off: backfill plugin-level events (plugin_created / npm_first_publish)

CI (.github/workflows/refresh.yml): single cron 03:07 UTC, Monday profile switched in-job, concurrency-grouped; deploys via workflow_run. recheck.yml lets authors trigger a re-check of their plugin from Actions. site/ is not in git (build artifact, gitignored) — pages.yml regenerates it at deploy time (pipeline --only site,badges,pages) and layers in site-static/ (CNAME/icons/og, the only hand-maintained web assets). db9 has a dev branch dsh-data-dev (schema + snapshot of prod): for local pipeline runs point DB9_SQL_URL=https://api.db9.ai/customer/databases/42r75opjazyn/sql at it (endpoint is not a secret; use your own scoped token, CI secrets stay prod-only).

Scoring in one paragraph

Start at 100, deduct per rule (fail −20 / major −10 / warn −5 / minor −2), every deduction carries evidence; missing data is never invented or penalized; stars never enter the score; LLM output is display-only. Grades S ≥95 · A ≥90 · B ≥75 · C ≥60 · D <60. Heuristic assessment, not a security audit — deep inspection (write-face/sanitizer) is a separate, clearly-labeled signal. Disputes: issue templates (ZH/EN both fine).

Status (2026-09-06)

  • Full crawl + validation: 14,331 candidates → 10,190 authoritative (0-duplicate hard gate; resumable, still rolling)
  • Site live (custom domain, dark/light, search, SEO basics, analytics); per-plugin pages for the full set; weekly reader with MD/PDF/PNG export
  • Health v4 (S-grade added) + calibration regression in snapshot gate; audit backlog closed (see docs/AUDIT-2026-09-06.md)
  • Metadata refresh loop (Tier 0) wired into Fridays; letters frozen to snapshot dates (diff-driven pages)
  • M1 exit remaining: contract-field survey · i18n detector (ja/ko/es) · weekly outreach (≥2 issues public, W37 = first)
  • M2 remaining: rc compat radar (v1 API-symbol route) · official timeline ≥4 weeks

Contributing

  • Plugin authors: check your page at /p/<owner>/<repo>/, embed the badge, request a re-check, appeal scores or correct data via issues (ZH/EN both fine).
  • Curators / agents: consume /data/insights.json (join key owner/repo, additive schema, CC BY 4.0).
  • Everything is generated by an open pipeline — clone and reproduce any number.