ЁЯПЖ dsh-score

September 4, 2026 ┬╖ View on GitHub

ЁЯПЖ dsh-score

  • 1024 рд╕реНрдЯреЛрд░ рдЪреИрдирд▓: рдПрдХ рдмрд╛рд░ npm i -g dsh1024, рдлрд┐рд░ dsh1024 plugin --profile web add dsh-score (deepseek1024.com рдЗрдВрд╕реНрдЯреЙрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

DeepSeek Harness рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдмрд╣реБ-рдЖрдпрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрдХреЛрд░рд┐рдВрдЧред

рдкрд╛рдБрдЪ рдЖрдпрд╛рдо, рд╡рд╛рд╕реНрддрд╡рд┐рдХ gh/npm рд╕рд╛рдХреНрд╖реНрдп, рдПрдХ рднрд╛рд░рд┐рдд рд░рд┐рд╕реНрдХ рдХрд╛рд░реНрдб рдФрд░ рд▓реАрдбрд░рдмреЛрд░реНрдбред

License DSH plugin Node CI Version npm version npm downloads

English ┬╖ чоАф╜Уф╕нцЦЗ ┬╖ Espa├▒ol ┬╖ Portugu├кs ┬╖ рд╣рд┐рдиреНрджреА


рд╕рдВрдЧрддрддрд╛

рдШрдЯрдХрд╕рдВрд╕реНрдХрд░рдг
DeepSeek Harness0.1.2-rc.1 (peer рдирд┐рд░реНрднрд░рддрд╛рдПрдБ >=0.1.0-rc.8 <0.2.0) (2026-09-04 рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд): рд╕рддреНрд░ рд▓рд┐рдлрд╝рд╛рдлрд╝рд╛ рдЕрдкрдирд╛ ignorable рдлрд╝реАрд▓реНрдб рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд-рд▓реЙрдЧ рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрддрд╛ рд╣реИ - Session.append рдЕрднреА рднреА рдЗрд╕реЗ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред
Node.js^22.19.0 || >=24.0.0
рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХpnpm@11.7.0
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдоWindows / macOS / Linux (рдХреЗрд╡рд▓-рд╣реЛрд╕реНрдЯ рдкреНрд▓рдЧрдЗрди)
рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдгPATH рдкрд░ gh CLI (рдкреНрд░рдорд╛рдгрд┐рдд), PATH рдкрд░ npm CLI

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

  • score рдЯреВрд▓ тАФ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд▓рдХреНрд╖реНрдп; рд╕рдВрд░рдЪрд┐рдд рд░рд┐рд╕реНрдХ рдХрд╛рд░реНрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрд╛ background: true рдХреЗ рд╕рд╛рде { kind: 'background', jobId }ред
  • /score рдХрдорд╛рдВрдб тАФ ctx.jobs рдкрд░ score-batch рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкреЗрд╕/рдХреЙрдорд╛ рд╕реЗ рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдп рд╕реВрдЪреА рдХреА рдмреИрдЪ рд╕реНрдХреЛрд░рд┐рдВрдЧ, рд▓реАрдбрд░рдмреЛрд░реНрдб рд╕реНрдиреИрдкрд╢реЙрдЯ (JSON + Markdown) рдмрдирд╛рддрд╛ рд╣реИред
  • score_report рдЯреВрд▓ тАФ рдХреЛрдИ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕реНрдХреЛрд░ рдХрд╛рд░реНрдб (sc_...), рд▓реАрдбрд░рдмреЛрд░реНрдб (lb_...), рдпрд╛ рдирд╡реАрдирддрдо рд▓реАрдбрд░рдмреЛрд░реНрдб рд▓рд╛рддрд╛ рд╣реИред
  • score_badge рдЯреВрд▓ тАФ рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП README рдмреИрдЬ рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА JSONред
  • рдкрд╛рдБрдЪ рдЖрдпрд╛рдо (рднрд╛рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдпреЛрдЧ 100): рдЗрдВрд╕реНрдЯреЙрд▓ 25, рд░рдЦрд░рдЦрд╛рд╡ 20, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг 20, рд╕реБрд░рдХреНрд╖рд╛ 20, рдЕрдиреБрдкрд╛рд▓рди 15ред
  • рд╕рд╛рдХреНрд╖реНрдп рдЕрдиреБрд╢рд╛рд╕рди тАФ рд╣рд░ рдЖрдпрд╛рдо рдЕрдкрдиреЗ рдСрдбрд┐рдЯ рд▓рд┐рдВрдХ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ; рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рдмрд┐рдирд╛ рд╡рд╣ no-evidence рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ (рд╕реНрдХреЛрд░ 0, рдХреБрд▓ рд╕реЗ рдмрд╛рд╣рд░), рдХрднреА рдХреЛрдИ рдмрдирд╛рдпрд╛ рд╣реБрдЖ рдирдВрдмрд░ рдирд╣реАрдВред
  • рд╕рдВрд░рдЪрд┐рдд рдкрд░рд┐рдгрд╛рдо тАФ рд╣рд░ рд░рд┐рдХреЙрд░реНрдб schema: "dsh-score/v1" рд░рдЦрддрд╛ рд╣реИред

рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд

git рдЪреИрдирд▓

dsh plugin --profile web add github:PerryLink/dsh-score#<commit-sha>

рдкрд╣рд▓рд╛ add рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ pnpm prepare рдмрд┐рд▓реНрдб рд░реЛрдХ рджреЗрддрд╛ рд╣реИ; pnpm рджреНрд╡рд╛рд░рд╛ рдЫрд╛рдкреА рдЧрдИ рд╕рдЯреАрдХ рдХреБрдВрдЬреА рдХреЛ profile рдХреЗ pnpm-workspace.yaml рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдкреБрдирдГ рдЪрд▓рд╛рдПрдБ:

allowBuilds:
  'dsh-score': true

npm рдЪреИрдирд▓

dsh plugin --profile web add dsh-score

рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓

dsh plugin --profile web add dsh-score     # рдЗрдВрд╕реНрдЯреЙрд▓ (npm) тАФ рдпрд╛ рдКрдкрд░ рд╡рд╛рд▓рд╛ git рд░реВрдк
dsh plugin --profile web remove dsh-score  # рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓

рд╡рд┐рдиреНрдпрд╛рд╕

рд╕рднреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджрд┐рдЦрд╛рдП рдЧрдП); рдЕрдорд╛рдиреНрдп рдорд╛рди рд▓реЛрдб рдкрд░ рдЬрд╝реЛрд░ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВред

рдХреБрдВрдЬреАрдбрд┐рдлрд╝реЙрд▓реНрдЯрд╡рд┐рд╡рд░рдг
probeTimeoutMs60000рдПрдХ gh/npm рдкреНрд░реЛрдм рдХрдорд╛рдВрдб рдХреА рд╕рдордп-рд╕реАрдорд╛ред
outputTailBytes8000рдкреНрд░рддрд┐ рдкреНрд░реЛрдм рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝ рдЖрдЙрдЯрдкреБрдЯ рдЯреЗрд▓ рдХреА рд╕реАрдорд╛ред
cacheMaxAgeMs86400000рдХреИрд╢ рдХрд┐рдП рдХрд╛рд░реНрдб рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рд╕рдордпред
staleCommitWarnDays90рдХрдорд┐рдЯ рдЖрдпреБ warn рдХреЗ рд▓рд┐рдПред
staleCommitFailDays365рдХрдорд┐рдЯ рдЖрдпреБ fail рдХреЗ рд▓рд┐рдПред
staleIssueWarnDays30рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЦреБрд▓реЗ issue рдХреА рдЖрдпреБ warn рдХреЗ рд▓рд┐рдПред
staleIssueFailDays180рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЦреБрд▓реЗ issue рдХреА рдЖрдпреБ fail рдХреЗ рд▓рд┐рдПред
maxBatchTargets20/score рдмреИрдЪ рд╕реАрдорд╛ред
batchConcurrency1рдмреИрдЪ рд╕рдорд╡рд░реНрддреАрддрд╛ред
weights{install:25, maintenance:20, documentation:20, security:20, compliance:15}рдкреНрд░рддрд┐-рдЖрдпрд╛рдо рднрд╛рд░ред

рдЯреВрд▓ рдФрд░ рд╕рддрд╣реЗрдВ

score

score(target: string, refresh?: boolean, background?: boolean)
  • target тАФ GitHub рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА (github:owner/repo, owner/repo, git/https URL) рдпрд╛ npm рдкреИрдХреЗрдЬ рдирд╛рдоред
  • refresh: true рдХреИрд╢ рдЫреЛрдбрд╝рдХрд░ рд╕рд╛рдХреНрд╖реНрдп рдкреБрдирдГ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред
  • background: true рдПрдХ score-batch рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

/score <targets...>

рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдмреИрдЪ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ; рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ score_report рдХреЗ рд▓рд┐рдП рд▓реАрдбрд░рдмреЛрд░реНрдб id рдмрддрд╛рддреА рд╣реИред

score_report(id?)

рдПрдХ рдХрд╛рд░реНрдб (sc_...), рд▓реАрдбрд░рдмреЛрд░реНрдб (lb_...), рдпрд╛ рдмрд┐рдирд╛ id рдХреЗ рдирд╡реАрдирддрдо рд▓реАрдбрд░рдмреЛрд░реНрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред

score_badge(target? | id?, refresh?)

рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП README рдмреИрдЬ рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА JSON рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:

  • target тАФ рдХреИрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GitHub рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдпрд╛ npm рдкреИрдХреЗрдЬ рд╕реНрдХреЛрд░ рдХрд░ рдмреИрдЬ рджреЗрддрд╛ рд╣реИ; id рдХреЗ рд╕рд╛рде рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдпред
  • id тАФ рдмрд┐рдирд╛ рдкреБрдирдГ рд╕реНрдХреЛрд░ рдХрд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рд╕реНрдХреЛрд░ рдХрд╛рд░реНрдб (sc_...) рдХрд╛ рдмреИрдЬред
  • refresh: true тАФ рд╕реНрдХреЛрд░ рдХреИрд╢ рдЫреЛрдбрд╝рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ target рдкрд░ рд▓рд╛рдЧреВ)ред

рдмреИрдЬ (SVG + endpoint + Markdown рдПрдореНрдмреЗрдб) рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА JSON рд▓реМрдЯрд╛рддрд╛ рд╣реИ тАФ рдиреАрдЪреЗ ┬лрдмреИрдЬ рдФрд░ JSON API┬╗ рджреЗрдЦреЗрдВред

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)"
}

рд╕реНрдХреЛрд░рд┐рдВрдЧ: рдХреБрд▓ рд╕рд╛рдХреНрд╖реНрдп рдЬреБрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рднрд╛рд░рд┐рдд рдФрд╕рдд рд╣реИ (no-evidence рдЖрдпрд╛рдо рдмрд╛рд╣рд░ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкреБрдирдГ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрддреЗ рд╣реИрдВ); A тЙе 90, B тЙе 75, C тЙе 60, D тЙе 40, рдЕрдиреНрдпрдерд╛ F, рдФрд░ N/A рдЬрдм рдХреБрдЫ рднреА рд╕рд╛рдХреНрд╖реНрдп рди рд╣реЛред

рдмреИрдЬ рдФрд░ JSON API

score_badge рдПрдХ рдЕрдВрдХрд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП README рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмреИрдЬ рдФрд░ рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА JSON рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдмреИрдЬ

рддреАрди рд░реВрдк, рд╕рднреА рдЙрд╕реА settled рд╕реНрдХреЛрд░ рдХрд╛рд░реНрдб рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди:

  • Endpoint тАФ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝рд┐рдд shields.io рд╕реНрдерд┐рд░ URL, README рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдкреЗрд╕реНрдЯ-рддреИрдпрд╛рд░ (рд╢реВрдиреНрдп self-hosting)ред
  • SVG тАФ self-contained shields.io рдлреНрд▓реИрдЯ-рд╢реИрд▓реА SVG (badge.svg рдлрд╝реАрд▓реНрдб / renderScoreBadge) рдСрдлрд╝рд▓рд╛рдЗрди рдпрд╛ self-hosted README рдХреЗ рд▓рд┐рдПред
  • Markdown тАФ рджреЛрдиреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдореНрдмреЗрдб рд╕реНрдирд┐рдкреЗрдЯред

рдХреБрд▓ рдмреИрдЬ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ:

![dsh-score: B ┬╖ 84/100](https://img.shields.io/badge/dsh--score-B_%C2%B7_84%2F100-green)

рдкрд╛рдБрдЪ-рдЖрдпрд╛рдореА JSON

рд╡рд╣реА рдХреЙрд▓ compact JSON API рд▓рд┐рдлрд╝рд╛рдлрд╝рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (schema: "dsh-score/badge/v1"):

{
  "schema": "dsh-score/badge/v1",
  "target": { "kind": "repo", "spec": "github:owner/dsh-click#abc123" },
  "scoredAt": "2026-08-16T00:00:00.000Z",
  "total": 84,
  "grade": "B",
  "dimensions": {
    "install":      { "label": "install", "status": "no-evidence", "score": 0,  "weight": 25, "summary": "no dsh-test-drive result recorded" },
    "maintenance":  { "label": "maintenance", "status": "pass", "score": 90, "weight": 20, "summary": "active (0 open issues)" },
    "documentation": { "label": "docs", "status": "pass", "score": 85, "weight": 20, "summary": "README + CHANGELOG + SECURITY" },
    "security":     { "label": "security", "status": "warn", "score": 60, "weight": 20, "summary": "permissive license" },
    "compliance":   { "label": "compliance", "status": "pass", "score": 100, "weight": 15, "summary": "dsh.bundle.patch + dsh-plugin topic" }
  }
}

no-evidence рдЖрдпрд╛рдо рдЕрдкрдиреА рдИрдорд╛рдирджрд╛рд░ рд╕реНрдерд┐рддрд┐ рдФрд░ 0 рд╕реНрдХреЛрд░ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ тАФ рдмреИрдЬ рдФрд░ JSON рдХрднреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдЧрдврд╝рддреЗред

рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рдбреЗрдЯрд╛

  • рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛рдПрдБ: ctx.subprocess, ctx.jobs, ctx.storageDomain, ctx.tools, ctx.commandsред
  • рдХрд╛рд░реНрдб рдФрд░ рд▓реАрдбрд░рдмреЛрд░реНрдб score рдбреЛрдореЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ (рдЯреЗрдмрд▓ scores, leaderboards; рдирд╡реАрдирддрдо-рд▓реАрдбрд░рдмреЛрд░реНрдб рдкреЙрдЗрдВрдЯрд░)ред рдмрд┐рдирд╛ storageDomain рдХреЗ рдЯреВрд▓ рдЪрд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдХрд╛рд░рдг рд╕рд╣рд┐рдд рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред
  • рдЪрд╛рдЗрд▓реНрдб рдкреНрд░реЛрд╕реЗрд╕ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓-рд░рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдкрд╛рддреЗ рд╣реИрдВ; gh рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рднрдВрдбрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рд╡рд╛рддрд╛рд╡рд░рдг рдорд╛рди рд▓реЙрдЧ рдирд╣реАрдВ рд╣реЛрддрд╛ред

рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛рдПрдБ

  • рдХреЛрдИ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдирд╣реАрдВред рдХреЗрд╡рд▓ gh api рдФрд░ npm view рдЪрд▓рддреЗ рд╣реИрдВред
  • рдХреЗрд╡рд▓-argv рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ред рдХрднреА рд╢реЗрд▓ рдирд╣реАрдВ; owner/repo рдЦрдВрдб рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд╣рд▓реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
  • рд╕рд╛рдХреНрд╖реНрдп рдЕрдиреБрд╢рд╛рд╕рдиред рд╡рд┐рдлрд▓ рдкреНрд░реЛрдм no-evidence рджреЗрддрд╛ рд╣реИ, рдХрднреА рдирдВрдмрд░ рдирд╣реАрдВред
  • рдкрд╣рдЪрд╛рди рдмрдирд╛рдо рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реЗрд╢рдиред рдЧреЛрдкрдиреАрдпрддрд╛ рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╣рдЪрд╛рди рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рд╣реА рд╢реБрджреНрдз regex рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИред

рдЬреНрдЮрд╛рдд рд╕реАрдорд╛рдПрдБ

  • рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдкреНрд░реЛрдм рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрд┐рдд gh рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд╛рд╣рд┐рдП; npm рдкреНрд░реЛрдм рдХреЗ рд▓рд┐рдП npm рдФрд░ registry рдкрд╣реБрдБрдЪ рдЪрд╛рд╣рд┐рдПред
  • рдмрд┐рдирд╛ рд╕рдорд╛рдзрд╛рди рдпреЛрдЧреНрдп GitHub рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХреЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг/рд╕реБрд░рдХреНрд╖рд╛/рдЕрдиреБрдкрд╛рд▓рди no-evidence рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред
  • рдЗрдВрд╕реНрдЯреЙрд▓ рд╕рдлрд▓рддрд╛ рд▓рдХреНрд╖реНрдп рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП dsh-test-drive рдХреЗ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред
  • ┬лissue рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛┬╗ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╣реИ (рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рдЦреБрд▓реЗ issue рдХреА рдЖрдпреБ)ред
  • рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐ рд▓рдХреНрд╖реНрдп рдХреИрд╢ рд╣реЛрддреЗ рд╣реИрдВ; рдкреБрдирдГ рд╕реНрдХреЛрд░ рдХреЗ рд▓рд┐рдП refresh: true рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡рд┐рдХрд╛рд╕

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

рд╡рд┐рд╖рдп

dsh, dsh-plugin, deepseek-harness, deepseek, cordis, plugin-scoring, quality-score, leaderboard, supply-chain

рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛

PerryLink тАФ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ PerryLink рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд 33 DeepSeek Harness рдкреНрд▓рдЧрдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рдХрд░реЗрдВрдЧреЗ:

PluginOne-liner
dsh-dsh-auto-reviewрдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рд╕реНрд╡рддрдГ-рд╕рдореАрдХреНрд╖рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓-рдмрдВрдж
dsh-dsh-background-agentsрд╡реЗрдм UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ
dsh-dsh-budgetDeepSeek Harness рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдкреНрд░рд╢рд╛рд╕рди: рдмрдЬрдЯ, рдХрд╛рд░реНрдмрди рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХ рдкреИрдирд▓ рдореЗрдВред
dsh-dsh-checkpoint-rewindClaude Code /rewind-рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЙрд░реНрдХ, рдПрдХ-рдмрд╛рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛
dsh-dsh-claude-moveClaude Code рд╕рддреНрд░, рдореЗрдореЛрд░реА, рдХреМрд╢рд▓ рдФрд░ CLAUDE.md рдХреЛ DSH рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
dsh-dsh-clickDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд┐рд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдирд┐рдпрдВрддреНрд░рдг тАФ Windows рдкрд╣рд▓реЗред
dsh-dsh-composer-historyрд╡реЗрдм рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ
dsh-dsh-data-qualityрдбреЗрдЯрд╛рд╕реЗрдЯ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдБрдЪ рд╡ рдЙрджреНрдзрд░рдг рд╕рддреНрдпрд╛рдкрди (рдпрд╣рд╛рдБ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЦреНрдпрд╛-рд╕реЗрддреБ)
dsh-dsh-defendDeepSeek Harness рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ-рдЗрдВрдЬреЗрдХреНрд╢рди, рдЬреЗрд▓рдмреНрд░реЗрдХ рдФрд░ рд╕реАрдХреНрд░реЗрдЯ-рд▓реАрдХ рд░рдХреНрд╖рд╛ред
dsh-dsh-doublecheckрдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рд░рдХреНрд╖рдХ: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-drawDeepSeek Harness рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рд╕реНрдереИрддрд┐рдХ-рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд░реВрдЯрд┐рдВрдЧред
dsh-dsh-fastDeepSeek Harness рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдкреНрд░рджрд░реНрд╢рди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ред
dsh-dsh-fund-researchрдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореНрдпреВрдЪреБрдЕрд▓ рдлрдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрддрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рд░рд┐рдкреЛрд░реНрдЯ
dsh-dsh-githubDSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд
dsh-dsh-industry-researchрдЙрджреНрдпреЛрдЧ-рдЕрдиреБрд╕рдВрдзрд╛рди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЬреЛ рдЗрд╕ рдкреНрд▓рдЧрд┐рди рдХреЗ ctx.researchReport.assemble рд╕реЗ рдбрд┐рд▓реАрд╡рд░реЗрдмрд▓ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИ
dsh-dsh-libraryDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреНрдЮрд╛рдирдХреЛрд╢ред
dsh-dsh-local-aiDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рдореЙрдбрд▓ (Ollama) рдПрдХреАрдХрд░рдгред
dsh-dsh-lsp-actionsрднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ LSP рдирд┐рджрд╛рди, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдкреВрд░реНрдгрддрд╛, рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛
dsh-dsh-maskPII рдорд╛рд╕реНрдХрд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░: рдореЙрдбрд▓ рд╕реАрдорд╛ рдкрд░ рдЕрдирд╛рдо рдХрд░реЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЗрдпрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh-dsh-mcp-panelрдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм
dsh-dsh-mementoрдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдореЗрдореЛрд░реА: ctx.memory рд╕реАрдо + SQLite + рдореЗрдореЛрд░реА рдЯреВрд▓
dsh-dsh-observeDeepSeek Harness рдХреЗ рд▓рд┐рдП OpenTelemetry рдФрд░ Langfuse рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛ рдирд┐рд░реНрдпрд╛рддрдХред
dsh-dsh-output-stylesClaude Code outputStyles-рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╢реИрд▓реА рдмрджрд▓рд╛рд╡
dsh-dsh-permission-rulesрдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо
dsh-dsh-plugin-guideрдорд╛рдБрдЧ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░
dsh-dsh-research-reportрд╕рд╛рдордЧреНрд░реА-рдкрддрд╛ рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕реАрд▓рдмрдВрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╕рддреНрдпрд╛рдкрди-рдпреЛрдЧреНрдп рдЕрдиреБрд╕рдВрдзрд╛рди-рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЬрди
dsh-dsh-session-pinрдЯрд┐рдХрд╛рдК рдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░ рдкрд┐рди рдХрд░реЗрдВ
dsh-dsh-session-syncDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбрд┐рд╡рд╛рдЗрд╕ рд╕рддреНрд░ рд╕рд┐рдВрдХ тАФ рдЖрдкрдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд git рдорд┐рд░рд░ред
dsh-dsh-skill-pack-securityрд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреБрдкреНрдд рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-talkDeepSeek Harness рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рдЬрд╝-рдкреНрд░рдердо рд╕рддреНрд░ рд▓реВрдк: рдмреЛрд▓реЗрдВ рдФрд░ рдЙрддреНрддрд░ рд╕реБрдиреЗрдВред
dsh-dsh-test-driveDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рдЗрдВрд╕реНрдЯреЙрд▓-рдПрдВрдб-рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ред
dsh-dsh-translateDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЗрдВрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ JSON рдорд░рдореНрдорддред

DSH Desktop рдорд╛рд░реНрдХреЗрдЯ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рд╕рднреА PerryLink рдкреНрд▓рдЧрдЗрди DSH Desktop рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: Market тЖТ Sources тЖТ add source тЖТ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json тЖТ рдЪреБрдиреЗрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рд░реНрдХреЗрдЯ рдХреЗ npm-identity рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЖрдкрдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рд╣реА рд╣реЛрддрд╛ рд╣реИред

рд▓рд╛рдЗрд╕реЗрдВрд╕

Apache-2.0