🏆 dsh-score
August 30, 2026 · View on GitHub
🏆 dsh-score
- Canal 1024 store:
npm i -g dsh1024una vez, luegodsh1024 plugin --profile web add dsh-score(cuenta para el ranking de instalaciones de deepseek1024.com).
Puntuación de calidad multidimensional para plugins de DeepSeek Harness.
Cinco dimensiones, evidencia real de los CLI gh/npm, una tarjeta de riesgo ponderada y tabla de clasificación.
Compatibilidad
| Componente | Versión |
|---|---|
| DeepSeek Harness | 0.1.1-rc.2 (dependencias entre pares >=0.1.0-rc.8 <0.2.0) |
| Node.js | ^22.19.0 || >=24.0.0 |
| Gestor de paquetes | pnpm@11.7.0 |
| Plataforma | Windows / macOS / Linux (plugin solo host) |
| Herramientas externas | CLI gh en PATH (autenticado), CLI npm en PATH |
Qué obtienes
- Herramienta
score— un objetivo por la canalización de cinco dimensiones; devuelve la tarjeta de riesgo estructurada, o{ kind: 'background', jobId }conbackground: true. - Comando
/score— puntuación por lotes de una lista separada por espacios/comas como trabajo en segundo planoscore-batchsobrectx.jobs, produciendo una tabla (JSON + Markdown). - Herramienta
score_report— recupera una tarjeta (sc_...), una tabla (lb_...) o la última tabla. - Cinco dimensiones (pesos configurables, suma 100 por defecto): instalación
25, mantenimiento20, documentación20, seguridad20, cumplimiento15. - Disciplina de evidencia — cada dimensión registra sus enlaces de auditoría; sin evidencia reporta
no-evidence(puntuación 0, excluida del total), nunca un número inventado. - Resultados estructurados — cada registro lleva
schema: "dsh-score/v1".
Inicio rápido
Canal git
dsh plugin --profile web add github:PerryLink/dsh-score#<commit-sha>
El primer add falla porque pnpm bloquea el prepare; copia la clave exacta impresa en pnpm-workspace.yaml y reintenta:
allowBuilds:
'dsh-score': true
Canal npm
dsh plugin --profile web add dsh-score
Instalación y desinstalación
dsh plugin --profile web add dsh-score # instalar (npm) — o el formulario git anterior
dsh plugin --profile web remove dsh-score # desinstalar
Configuración
Todas las claves son opcionales (valores por defecto mostrados); los valores inválidos fallan en voz alta al cargar.
| Clave | Predeterminado | Descripción |
|---|---|---|
probeTimeoutMs | 60000 | Plazo para un comando de sondeo gh/npm. |
outputTailBytes | 8000 | Tope de la cola de salida saneada por sondeo. |
cacheMaxAgeMs | 86400000 | Tiempo de reutilización de una tarjeta cacheada. |
staleCommitWarnDays | 90 | Edad de commit a warn. |
staleCommitFailDays | 365 | Edad de commit a fail. |
staleIssueWarnDays | 30 | Edad de issue abierto más antiguo a warn. |
staleIssueFailDays | 180 | Edad de issue abierto más antiguo a fail. |
maxBatchTargets | 20 | Tope de lote de /score. |
batchConcurrency | 1 | Concurrencia del lote. |
weights | {install:25, maintenance:20, documentation:20, security:20, compliance:15} | Pesos por dimensión. |
Herramientas y superficies
score
score(target: string, refresh?: boolean, background?: boolean)
target— repositorio de GitHub (github:owner/repo,owner/repo, URL git/https) o nombre de paquete npm.refresh: trueomite la caché y vuelve a recopilar evidencia.background: trueinicia un trabajoscore-batch.
/score <targets...>
Inicia un trabajo por lotes en segundo plano; la última línea nombra el id de tabla para score_report.
score_report(id?)
Devuelve una tarjeta (sc_...), una tabla (lb_...) o, sin id, la última tabla.
score_badge(target? | id?, refresh?)
Genera una insignia embebible en README y el JSON de cinco dimensiones para un objetivo:
target— puntúa un repositorio de GitHub o un paquete npm (a través de la caché) y le pone insignia; mutuamente excluyente conid.id— pone insignia a una tarjeta almacenada (sc_...) sin volver a puntuar.refresh: true— omite la caché de puntuación (solo aplica atarget).
Devuelve la insignia (SVG + endpoint + inserción Markdown) y el JSON compacto de cinco dimensiones — ver «Insignia y API JSON» abajo.
Structured result sample
{
"schema": "dsh-score/v1",
"scoreId": "sc_8f1c2e4a9b3d7f01",
"target": { "kind": "repo", "spec": "github:owner/dsh-click#abc123" },
"scoredAt": "2026-08-16T00:00:00.000Z",
"durationMs": 3210,
"pluginVersion": "0.1.0",
"dimensions": {
"install": { "dimension": "install", "status": "no-evidence", "score": 0, "weight": 25,
"summary": "no dsh-test-drive result recorded for this target (install success unmeasured)",
"evidence": [{ "source": "test-drive", "detail": "no test-drive record found in the test_drive domain", "observedAt": "2026-08-16T00:00:00.000Z" }] },
"maintenance": { "dimension": "maintenance", "status": "pass", "score": 100, "weight": 20,
"summary": "active (2026-08-10T00:00:00Z; 0 open issues)",
"evidence": [{ "source": "gh-api", "detail": "last activity 2026-08-10T00:00:00Z", "observedAt": "2026-08-16T00:00:00.000Z" }] }
},
"total": 88,
"grade": "B",
"verdict": "healthy (weighted total 88/100)"
}
Puntuación: el total es una media ponderada sobre las dimensiones con evidencia (las dimensiones no-evidence se excluyen y se renormalizan); A ≥ 90, B ≥ 75, C ≥ 60, D ≥ 40, si no F, y N/A cuando nada tuvo evidencia.
Insignia y API JSON
score_badge genera una insignia embebible en README y el JSON de cinco dimensiones para un objetivo puntuado.
Insignia
- Insignia — SVG plano de shields.io (campo
badge.svg/renderScoreBadge), URL de endpoint documentada y fragmento Markdown de inserción.
Inserta la insignia total:

JSON de cinco dimensiones
- JSON de cinco dimensiones —
install/maintenance/documentation/security/complianceconstatus/score/weight/summary, más eltotalponderado y lagrade(schema: "dsh-score/badge/v1").
Una dimensión no-evidence conserva su estado honesto y puntúa 0 — la insignia y el JSON nunca inventan números.
Permisos y datos
- Solo servicios públicos:
ctx.subprocess,ctx.jobs,ctx.storageDomain,ctx.tools,ctx.commands. - Las tarjetas y tablas se almacenan en el dominio
score(tablasscores,leaderboards; puntero a la última tabla). SinstorageDomain, las herramientas siguen funcionando y la persistencia se desactiva con motivo registrado. - Los procesos hijos heredan un entorno sin credenciales;
ghusa su propio almacén. Ningún valor de entorno se registra.
Límites de seguridad
- Sin ejecución de código. Solo se ejecutan
gh apiynpm view. - Subprocesos solo argv. Nunca se interpreta una shell; los segmentos owner/repo se validan antes de usarse.
- Disciplina de evidencia. Un sondeo fallido produce
no-evidence, nunca un número. - Detección vs saneado. Detección de secretos y scripts maliciosos comparte las mismas regex puras que el saneado.
Limitaciones conocidas
- Los sondeos de repositorio requieren
ghautenticado y red; los de npm requierennpmy acceso al registry. - Sin un repositorio de GitHub resoluble, documentación/seguridad/cumplimiento reportan
no-evidence. - El éxito de instalación depende de
dsh-test-drivemontado con el objetivo registrado. - La «respuesta a issues» es un proxy (edad del issue abierto más antiguo).
- Los resultados se cachean por objetivo; usa
refresh: truepara forzar re-puntuación.
Desarrollo
pnpm install
pnpm run typecheck && pnpm run typecheck:ci && pnpm test
pnpm run build && pnpm run verify:self-contained && pnpm run verify:artifacts && pnpm pack
Temas
dsh, dsh-plugin, deepseek-harness, deepseek, cordis, plugin-scoring, quality-score, leaderboard, supply-chain
Contribuidores
PerryLink — diseño e implementación.
PerryLink DSH Plugin Family
Este proyecto es uno de los 33 complementos de DeepSeek Harness mantenidos por PerryLink. Si este te ayuda, probablemente los demás también:
| Plugin | One-liner |
|---|---|
| dsh-dsh-auto-review | Auto-revisión de segundo modelo en la cadena de aprobación, con cierre en fallo por defecto |
| dsh-dsh-background-agents | Agentes hijos en segundo plano durables con barra lateral de UI web, mensajería e interrupción |
| dsh-dsh-budget | Gobernanza de costes para DeepSeek Harness: presupuestos, carbono y latencia en un panel. |
| dsh-dsh-checkpoint-rewind | Equivalente a /rewind de Claude Code: instantáneas, bifurcaciones de sesión, restauración de un solo uso |
| dsh-dsh-claude-move | Migra sesiones, memoria, habilidades y CLAUDE.md de Claude Code a DSH |
| dsh-dsh-click | Control de escritorio nativo multiplataforma para DeepSeek Harness — Windows primero. |
| dsh-dsh-composer-history | Historial de entrada estilo terminal para el compositor web: flechas, búsqueda Ctrl+R |
| dsh-dsh-data-quality | Comprobaciones de calidad de datasets y verificación de citas (el puente numérico opcional consumido aquí) |
| dsh-dsh-defend | Defensa contra inyección de prompts, jailbreak y fuga de secretos para DeepSeek Harness. |
| dsh-dsh-doublecheck | Guardián de disciplina de ingeniería: interrogatorio de requisitos, puertas de pruebas, revisión adversaria |
| dsh-dsh-draw | Enrutamiento unificado de generación de imágenes estáticas para DeepSeek Harness. |
| dsh-dsh-fast | Diagnóstico de rendimiento de solo lectura para DeepSeek Harness. |
| dsh-dsh-fund-research | Informes de investigación deterministas para fondos mutuos públicos chinos |
| dsh-dsh-github | Integración de PR/issues de GitHub para DSH, cada escritura controlada por aprobación |
| dsh-dsh-industry-research | Orquestación de investigación sectorial que sella sus entregables mediante el ctx.researchReport.assemble de este plugin |
| dsh-dsh-library | Base de conocimiento documental local para DeepSeek Harness. |
| dsh-dsh-local-ai | Integración de modelos locales (Ollama) para DeepSeek Harness. |
| dsh-dsh-lsp-actions | Diagnósticos, formato, autocompletado, acciones de código y renombrado LSP sobre servidores de lenguaje |
| dsh-dsh-mask | Middleware de enmascaramiento de PII: anonimiza en el límite del modelo, restaura en la capa de visualización |
| dsh-dsh-mcp-panel | Panel de tiempo de ejecución MCP de solo lectura: comando /mcp + pestaña Settings con estado, herramientas y errores |
| dsh-dsh-memento | Memoria entre sesiones controlada por aprobación: costura ctx.memory + SQLite + herramienta de memoria |
| dsh-dsh-observe | Exportador de observabilidad OpenTelemetry y Langfuse para DeepSeek Harness. |
| dsh-dsh-output-styles | Cambio de estilo en tiempo de ejecución equivalente a outputStyles de Claude Code |
| dsh-dsh-permission-rules | Reglas de permisos declarativas allow/deny/ask estilo Claude Code con auditoría |
| dsh-dsh-plugin-guide | Base de conocimiento de desarrollo de plugins como habilidad de agente bajo demanda |
| dsh-dsh-research-report | Motor de informes de investigación verificables con evidencia direccionada por contenido |
| dsh-dsh-session-pin | Fija sesiones en la barra lateral web con orden durable |
| dsh-dsh-session-sync | Sincronización de sesiones entre dispositivos para DeepSeek Harness — un espejo git dedicado de tu almacén de sesiones. |
| dsh-dsh-skill-pack-security | Paquete de habilidades de auditoría de seguridad: escaneo de secretos, revisión de dependencias y cadena de suministro |
| dsh-dsh-talk | Bucle de sesión con voz para DeepSeek Harness: háblale y escucha su respuesta. |
| dsh-dsh-test-drive | Pruebas de instalación y humo aisladas para plugins de DeepSeek Harness. |
| dsh-dsh-translate | Traducción de parámetros entre proveedores y reparación determinista de JSON para DeepSeek Harness. |