dsh-autotier 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # dsh-autotier
2
2
 
3
+ > 🧊 **FROZEN — 2026-10-31. Maintenance mode.** No new features; security and dependency fixes only.
4
+
5
+ ## Maintenance status: 🧊 FROZEN
6
+
7
+ Frozen on 2026-10-31 in maintenance mode. The package stays installable; only security and dependency fixes are planned.
8
+
9
+
10
+ ```sh
11
+ dsh plugin --profile <name> add dsh-autotier
12
+ ```
13
+
14
+
3
15
  **English** | [简体中文](README-zh.md) | [Español](README-es.md) | [Português](README-pt.md) | [हिन्दी](README-hi.md)
4
16
 
5
17
  Automatic model-tier routing for DeepSeek Harness: one user instruction enters,
@@ -30,11 +42,52 @@ escalate to the strong tier with a TTL fallback.
30
42
  **📖 Ecosystem knowledge base** — measured data, not marketing: [plugin development guide · plugin-selection data · maintenance criteria](https://perrylink.github.io/dsh-plugin-guide/).
31
43
 
32
44
  <!-- star-cta -->
45
+ ## Install & uninstall
46
+
47
+ **npm channel**
48
+
49
+ ```bash
50
+ dsh plugin --profile web add dsh-autotier
51
+ npm i -g dsh1024
52
+ dsh1024 plugin --profile web add dsh-autotier
53
+ ```
54
+
55
+ **git channel**
56
+
57
+ ```bash
58
+ dsh plugin --profile web add github:PerryLink/dsh-autotier
59
+ git clone https://github.com/PerryLink/dsh-autotier.git
60
+ cd dsh-autotier && pnpm install && pnpm run build
61
+ dsh plugin --profile web add .
62
+ ```
63
+
64
+ **Optional preset prompt section.** The router works without it. To let the
65
+ model know which tier it is running on, add one row to *your* agent preset
66
+ (`docs/preset-row.md` has the exact block):
67
+
68
+ ```yaml
69
+ - insert:
70
+ - id: autotier-prompt
71
+ name: '@deepseek-ai/dsh-system-prompt'
72
+ # sections: [...] — see docs/preset-row.md
73
+ ```
74
+
75
+ **Uninstall**
76
+
77
+ ```bash
78
+ dsh plugin --profile web remove dsh-autotier
79
+ ```
80
+
81
+ The row, its command, its tools and its listeners are all removed with the
82
+ plugin. Configuration a user saved through the Plugins page lives in the active
83
+ profile patch and belongs to that profile, not to this plugin; removing the row
84
+ leaves it there untouched.
85
+
33
86
  ## ⭐ 如果它帮到了你
34
87
 
35
- 这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(40+ 个,全部 Apache-2.0)。如果你在用,**给个 star** —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
88
+ 这个插件是 [DSH 插件家族](https://github.com/PerryLink)的一员(95 个,全部 Apache-2.0)。如果你在用,**给个 star** —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
36
89
 
37
- *English:* part of a 40+ plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
90
+ *English:* part of a 95 plugin family for DeepSeek Harness. If it is useful, **a star helps the next person find it** — nothing is gated behind it.
38
91
 
39
92
 
40
93
  ## What is dsh-autotier?
@@ -43,11 +96,11 @@ npm channel
43
96
 
44
97
  git channel
45
98
 
46
- ![Terminal demo of dsh-autotier: dsh-autotier — install, then the documented tier defaults behind /tier](https://raw.githubusercontent.com/PerryLink/dsh-autotier/main/docs/assets/dsh-autotier-hero.png)
99
+ ![Workflow diagram for dsh-autotier: call → plugin → result.](docs/assets/dsh-autotier-flow.svg)
100
+
101
+ *Workflow overview: call → plugin → result. The examples below use the real command surface.*
47
102
 
48
- ![Animated terminal demo of dsh-autotier](https://raw.githubusercontent.com/PerryLink/dsh-autotier/main/docs/assets/dsh-autotier-demo.gif)
49
103
 
50
- *The same run, animated.*
51
104
 
52
105
  ## Compatibility
53
106
 
@@ -120,46 +173,58 @@ dsh1024 plugin --profile web add dsh-autotier
120
173
  Then start (or restart) the harness. The row is appended to your profile's
121
174
  `cordis.patch.yml`; routing starts on the next turn with no further setup.
122
175
 
123
- ## Install & uninstall
176
+ ### Examples
124
177
 
125
- **npm channel**
178
+ These are the plugin's real entry points; install once, then call one.
126
179
 
127
- ```bash
128
- dsh plugin --profile web add dsh-autotier
129
- npm i -g dsh1024
130
- dsh1024 plugin --profile web add dsh-autotier
131
- ```
180
+ #### Detailed example
132
181
 
133
- **git channel**
182
+ **Command**
134
183
 
135
- ```bash
136
- dsh plugin --profile web add github:PerryLink/dsh-autotier
137
- git clone https://github.com/PerryLink/dsh-autotier.git
138
- cd dsh-autotier && pnpm install && pnpm run build
139
- dsh plugin --profile web add .
140
- ```
184
+ ~~~sh
185
+ tier_route
186
+ ~~~
141
187
 
142
- **Optional preset prompt section.** The router works without it. To let the
143
- model know which tier it is running on, add one row to *your* agent preset
144
- (`docs/preset-row.md` has the exact block):
188
+ **Input**
145
189
 
146
- ```yaml
147
- - insert:
148
- - id: autotier-prompt
149
- name: '@deepseek-ai/dsh-system-prompt'
150
- # sections: [...] — see docs/preset-row.md
151
- ```
190
+ ~~~json
191
+ { "text": "Plan the migration of the storage layer end to end" }
192
+ ~~~
152
193
 
153
- **Uninstall**
194
+ **Output**
154
195
 
155
- ```bash
156
- dsh plugin --profile web remove dsh-autotier
157
- ```
196
+ ~~~text
197
+ {
198
+ "tier": "strong",
199
+ "scenario": "planning",
200
+ "confidence": 0.97,
201
+ "fingerprint": "planning|0|0",
202
+ "reason": "explicit planning intent"
203
+ }
204
+ ~~~
158
205
 
159
- The row, its command, its tools and its listeners are all removed with the
160
- plugin. Configuration a user saved through the Plugins page lives in the active
161
- profile patch and belongs to that profile, not to this plugin; removing the row
162
- leaves it there untouched.
206
+ *Observed from `README.md:248 (Tools & surfaces); tests/tools.spec.ts:96-109; src/tools.ts:80`*
207
+
208
+ #### Failure branch
209
+
210
+ **Input**
211
+
212
+ ~~~text
213
+ resolveConfig({ tiers: { cheap: { provider: 'deepseek-official', model: 'deepseek-v4-pro', effort: 'high', followSession: false } } })
214
+ ~~~
215
+
216
+ **Output**
217
+
218
+ ~~~text
219
+ Error: dsh-autotier: config.tiers strong and cheap resolve to the same landing (deepseek-official/deepseek-v4-pro@high); tiering would be a no-op
220
+ ~~~
221
+
222
+ *Observed from `plugins/dsh-autotier/src/config.ts:377-386; plugins/dsh-autotier/tests/config.spec.ts:87-92; plugins/dsh-autotier/README.md:208-209`*
223
+
224
+ #### Brief examples
225
+
226
+ - `tier_status`
227
+ - `tier_route`
163
228
 
164
229
  ## Configuration
165
230
 
@@ -340,55 +405,110 @@ PerryLink. Issues and pull requests are welcome at
340
405
 
341
406
  ## PerryLink DSH Plugin Family
342
407
 
343
- This project is one of the **34 actively maintained** DeepSeek Harness plugins from [PerryLink](https://github.com/PerryLink) — the roster is **42**, of which **5** are frozen and **3** retired; every one keeps its row below, with the reason in the Status column. If this one helps you, the others likely will too:
408
+ This project is part of the DeepSeek Harness plugin family from [PerryLink](https://github.com/PerryLink). The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.
344
409
 
345
- | Plugin | One-liner | Status |
346
- |---|---|---|
347
- | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | Second-model auto-review on the approval chain, fail-closed by default | |
348
- | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | Automatic strong/cheap model-tier routing with deterministic risk guards and a `/tier` command | |
349
- | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | Durable background child agents with a Web UI sidebar, messaging and interrupt | 🚫 **RETIRED** — see the note above |
350
- | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | 🧊 FROZEN — see the repo README |
351
- | **[dsh-catalog](https://github.com/PerryLink/dsh-catalog)** | DSH Desktop Market standard catalog source for the PerryLink family | |
352
- | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | Read-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence | |
353
- | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore | |
354
- | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH | 🧊 FROZEN — see the repo README |
355
- | **[dsh-click](https://github.com/PerryLink/dsh-click)** | Cross-platform native desktop control for DeepSeek Harness — Windows first. | |
356
- | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | Terminal-style input history for the web composer: arrows, Ctrl+R search | |
357
- | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here) | |
358
- | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness. | 🧊 FROZEN — see the repo README |
359
- | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | Engineering-discipline guard: requirements grill, test gates, adversary review | |
360
- | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | Unified static-image generation routing for DeepSeek Harness. | 🧊 FROZEN — see the repo README |
361
- | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | Read-only performance diagnostics for DeepSeek Harness. | |
362
- | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | Deterministic research reports for Chinese public mutual funds | |
363
- | **[dsh-github](https://github.com/PerryLink/dsh-github)** | GitHub PR/issues integration for DSH, every write gated by approval | |
364
- | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | Industry research orchestration that seals its deliverables through this plugin's `ctx.researchReport.assemble` | |
365
- | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | Laya typed decisions (`noul`/`choice`/`score`) as a first-class Cordis service and model-visible tools | |
366
- | **[dsh-library](https://github.com/PerryLink/dsh-library)** | Local document knowledge base for DeepSeek Harness. | |
367
- | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | Local-model (Ollama) integration for DeepSeek Harness. | |
368
- | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | LSP diagnostics, formatting, completion, code actions and rename over language servers | |
369
- | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | PII masking middleware: anonymize at the model boundary, restore at the display layer | |
370
- | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors | |
371
- | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool | |
372
- | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | OpenTelemetry and Langfuse observability exporter for DeepSeek Harness. | |
373
- | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | Claude Code outputStyles-equivalent runtime style switching | |
374
- | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | Claude Code-style declarative allow/deny/ask permission rules with audit | |
375
- | **[dsh-plugin-certification](https://github.com/PerryLink/dsh-plugin-certification)** | Community certification registry with repro-checkable grades and badges | |
376
- | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | Zero-dependency static + sandbox smoke detector for DSH plugins | |
377
- | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | Plugin-development knowledge base as an on-demand agent skill | |
378
- | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | Shared zero-runtime-dependency toolkit for the PerryLink DSH plugins | |
379
- | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | One-package, one-corridor-index plugin upgrade skill: routes a repository to the matching closed corridor card | |
380
- | **[dsh-plugin-upgrade-015](https://github.com/PerryLink/dsh-plugin-upgrade-015)** | Merged `0.1.3-alpha.1` → `0.1.5-rc.1` upgrade corridor card plus a zero-dependency seam scanner | 🚫 RETIRED — corridors carried by `dsh-plugin-upgrade` |
381
- | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console | 🧊 FROZEN — see the repo README |
382
- | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | Verifiable research-report engine: content-addressed evidence ledger and sealed versions | |
383
- | **[dsh-score](https://github.com/PerryLink/dsh-score)** | Multi-dimensional quality scoring for DeepSeek Harness plugins. | |
384
- | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | Pin sessions in the Web sidebar with durable ordering | 🚫 **RETIRED** — see the note above |
385
- | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store. | |
386
- | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | Security-audit skill pack: secret scan, dependency and supply-chain review | |
387
- | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | Voice-first session loop for DeepSeek Harness: talk to it, hear it answer. | |
388
- | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | Cross-session team rooms: shared message bus, task board and timeline | 🚫 **RETIRED** — see the note above |
389
- | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | Isolated install-and-smoke test drives for DeepSeek Harness plugins. | |
390
- | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | TickTick/Dida365 task bridge: session-header panel + 11 tools | |
391
- | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | Vendor parameter translation and deterministic JSON repair for DeepSeek Harness. | |
410
+ <details>
411
+ <summary>Expand all plugins</summary>
412
+
413
+ | Plugin | Status |
414
+ |---|---|
415
+ | **[dsh-aqua-input-check](https://github.com/PerryLink/dsh-aqua-input-check)** | |
416
+ | **[dsh-archive-check](https://github.com/PerryLink/dsh-archive-check)** | |
417
+ | **[dsh-auto-review](https://github.com/PerryLink/dsh-auto-review)** | |
418
+ | **[dsh-autotier](https://github.com/PerryLink/dsh-autotier)** | |
419
+ | **[dsh-bid-ca-precheck](https://github.com/PerryLink/dsh-bid-ca-precheck)** | |
420
+ | **[dsh-bid-qual-check](https://github.com/PerryLink/dsh-bid-qual-check)** | |
421
+ | **[dsh-cert-mcp](https://github.com/PerryLink/dsh-cert-mcp)** | |
422
+ | **[dsh-checkpoint-rewind](https://github.com/PerryLink/dsh-checkpoint-rewind)** | |
423
+ | **[dsh-click](https://github.com/PerryLink/dsh-click)** | |
424
+ | **[dsh-composer-history](https://github.com/PerryLink/dsh-composer-history)** | |
425
+ | **[dsh-contract-stance](https://github.com/PerryLink/dsh-contract-stance)** | |
426
+ | **[dsh-customs-doc-check](https://github.com/PerryLink/dsh-customs-doc-check)** | |
427
+ | **[dsh-data-quality](https://github.com/PerryLink/dsh-data-quality)** | |
428
+ | **[dsh-demurrage-ledger](https://github.com/PerryLink/dsh-demurrage-ledger)** | |
429
+ | **[dsh-doublecheck](https://github.com/PerryLink/dsh-doublecheck)** | |
430
+ | **[dsh-drill-script-check](https://github.com/PerryLink/dsh-drill-script-check)** | |
431
+ | **[dsh-eia-guide-check](https://github.com/PerryLink/dsh-eia-guide-check)** | |
432
+ | **[dsh-emergency-plan](https://github.com/PerryLink/dsh-emergency-plan)** | |
433
+ | **[dsh-essay-rubric-check](https://github.com/PerryLink/dsh-essay-rubric-check)** | |
434
+ | **[dsh-evidence-check](https://github.com/PerryLink/dsh-evidence-check)** | |
435
+ | **[dsh-export-ctl-check](https://github.com/PerryLink/dsh-export-ctl-check)** | |
436
+ | **[dsh-fast](https://github.com/PerryLink/dsh-fast)** | |
437
+ | **[dsh-fmea-table-check](https://github.com/PerryLink/dsh-fmea-table-check)** | |
438
+ | **[dsh-forecast-penalty](https://github.com/PerryLink/dsh-forecast-penalty)** | |
439
+ | **[dsh-fund-research](https://github.com/PerryLink/dsh-fund-research)** | |
440
+ | **[dsh-github](https://github.com/PerryLink/dsh-github)** | |
441
+ | **[dsh-gongwen-flow-check](https://github.com/PerryLink/dsh-gongwen-flow-check)** | |
442
+ | **[dsh-gongwen-word-check](https://github.com/PerryLink/dsh-gongwen-word-check)** | |
443
+ | **[dsh-guard-plan-qc](https://github.com/PerryLink/dsh-guard-plan-qc)** | |
444
+ | **[dsh-hazchem-check](https://github.com/PerryLink/dsh-hazchem-check)** | |
445
+ | **[dsh-hazplan-check](https://github.com/PerryLink/dsh-hazplan-check)** | |
446
+ | **[dsh-hidden-risk-map](https://github.com/PerryLink/dsh-hidden-risk-map)** | |
447
+ | **[dsh-hs-classify](https://github.com/PerryLink/dsh-hs-classify)** | |
448
+ | **[dsh-icd-rule-check](https://github.com/PerryLink/dsh-icd-rule-check)** | |
449
+ | **[dsh-industry-research](https://github.com/PerryLink/dsh-industry-research)** | |
450
+ | **[dsh-lawcite-adapter](https://github.com/PerryLink/dsh-lawcite-adapter)** | |
451
+ | **[dsh-laya](https://github.com/PerryLink/dsh-laya)** | |
452
+ | **[dsh-lc-doc-check](https://github.com/PerryLink/dsh-lc-doc-check)** | |
453
+ | **[dsh-learning-gap-check](https://github.com/PerryLink/dsh-learning-gap-check)** | |
454
+ | **[dsh-library](https://github.com/PerryLink/dsh-library)** | |
455
+ | **[dsh-local-ai](https://github.com/PerryLink/dsh-local-ai)** | |
456
+ | **[dsh-lsp-actions](https://github.com/PerryLink/dsh-lsp-actions)** | |
457
+ | **[dsh-mask](https://github.com/PerryLink/dsh-mask)** | |
458
+ | **[dsh-mcp-panel](https://github.com/PerryLink/dsh-mcp-panel)** | |
459
+ | **[dsh-medrec-qc](https://github.com/PerryLink/dsh-medrec-qc)** | |
460
+ | **[dsh-memento](https://github.com/PerryLink/dsh-memento)** | |
461
+ | **[dsh-nsfc-form-check](https://github.com/PerryLink/dsh-nsfc-form-check)** | |
462
+ | **[dsh-nurse-record-check](https://github.com/PerryLink/dsh-nurse-record-check)** | |
463
+ | **[dsh-observe](https://github.com/PerryLink/dsh-observe)** | |
464
+ | **[dsh-origin-rvc-check](https://github.com/PerryLink/dsh-origin-rvc-check)** | |
465
+ | **[dsh-ota-review-check](https://github.com/PerryLink/dsh-ota-review-check)** | |
466
+ | **[dsh-output-styles](https://github.com/PerryLink/dsh-output-styles)** | |
467
+ | **[dsh-paper-doc-adapter](https://github.com/PerryLink/dsh-paper-doc-adapter)** | |
468
+ | **[dsh-permission-rules](https://github.com/PerryLink/dsh-permission-rules)** | |
469
+ | **[dsh-permit-report-check](https://github.com/PerryLink/dsh-permit-report-check)** | |
470
+ | **[dsh-pipeline-check](https://github.com/PerryLink/dsh-pipeline-check)** | |
471
+ | **[dsh-pleading-draft](https://github.com/PerryLink/dsh-pleading-draft)** | |
472
+ | **[dsh-plugin-doctor](https://github.com/PerryLink/dsh-plugin-doctor)** | |
473
+ | **[dsh-plugin-guide](https://github.com/PerryLink/dsh-plugin-guide)** | |
474
+ | **[dsh-plugin-kit](https://github.com/PerryLink/dsh-plugin-kit)** | |
475
+ | **[dsh-plugin-upgrade](https://github.com/PerryLink/dsh-plugin-upgrade)** | |
476
+ | **[dsh-policy-brief-draft](https://github.com/PerryLink/dsh-policy-brief-draft)** | |
477
+ | **[dsh-power-loss-split](https://github.com/PerryLink/dsh-power-loss-split)** | |
478
+ | **[dsh-power-ticket-check](https://github.com/PerryLink/dsh-power-ticket-check)** | |
479
+ | **[dsh-ppap-check](https://github.com/PerryLink/dsh-ppap-check)** | |
480
+ | **[dsh-protest-deadline](https://github.com/PerryLink/dsh-protest-deadline)** | |
481
+ | **[dsh-railway-window](https://github.com/PerryLink/dsh-railway-window)** | |
482
+ | **[dsh-repair-order-qc](https://github.com/PerryLink/dsh-repair-order-qc)** | |
483
+ | **[dsh-research-report](https://github.com/PerryLink/dsh-research-report)** | |
484
+ | **[dsh-review-reply-check](https://github.com/PerryLink/dsh-review-reply-check)** | |
485
+ | **[dsh-rulefile-check](https://github.com/PerryLink/dsh-rulefile-check)** | |
486
+ | **[dsh-safety-brief-check](https://github.com/PerryLink/dsh-safety-brief-check)** | |
487
+ | **[dsh-score](https://github.com/PerryLink/dsh-score)** | |
488
+ | **[dsh-session-sync](https://github.com/PerryLink/dsh-session-sync)** | |
489
+ | **[dsh-site-log-check](https://github.com/PerryLink/dsh-site-log-check)** | |
490
+ | **[dsh-skill-pack-security](https://github.com/PerryLink/dsh-skill-pack-security)** | |
491
+ | **[dsh-soe-decision-check](https://github.com/PerryLink/dsh-soe-decision-check)** | |
492
+ | **[dsh-soilwater-check](https://github.com/PerryLink/dsh-soilwater-check)** | |
493
+ | **[dsh-sop-sync-check](https://github.com/PerryLink/dsh-sop-sync-check)** | |
494
+ | **[dsh-spc-gbt-adapter](https://github.com/PerryLink/dsh-spc-gbt-adapter)** | |
495
+ | **[dsh-talk](https://github.com/PerryLink/dsh-talk)** | |
496
+ | **[dsh-tender-extract](https://github.com/PerryLink/dsh-tender-extract)** | |
497
+ | **[dsh-tender-matrix](https://github.com/PerryLink/dsh-tender-matrix)** | |
498
+ | **[dsh-test-drive](https://github.com/PerryLink/dsh-test-drive)** | |
499
+ | **[dsh-ticktick](https://github.com/PerryLink/dsh-ticktick)** | |
500
+ | **[dsh-translate](https://github.com/PerryLink/dsh-translate)** | |
501
+ | **[dsh-warranty-calc](https://github.com/PerryLink/dsh-warranty-calc)** | |
502
+ | **[dsh-budget](https://github.com/PerryLink/dsh-budget)** | 🧊 FROZEN — see the repo README |
503
+ | **[dsh-claude-move](https://github.com/PerryLink/dsh-claude-move)** | 🧊 FROZEN — see the repo README |
504
+ | **[dsh-defend](https://github.com/PerryLink/dsh-defend)** | 🧊 FROZEN — see the repo README |
505
+ | **[dsh-draw](https://github.com/PerryLink/dsh-draw)** | 🧊 FROZEN — see the repo README |
506
+ | **[dsh-reach](https://github.com/PerryLink/dsh-reach)** | 🧊 FROZEN — see the repo README |
507
+ | **[dsh-background-agents](https://github.com/PerryLink/dsh-background-agents)** | 🚫 RETIRED — see the repo README |
508
+ | **[dsh-session-pin](https://github.com/PerryLink/dsh-session-pin)** | 🚫 RETIRED — see the repo README |
509
+ | **[dsh-team-rooms](https://github.com/PerryLink/dsh-team-rooms)** | 🚫 RETIRED — see the repo README |
510
+
511
+ </details>
392
512
 
393
513
  ## License
394
514
 
@@ -0,0 +1,19 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="360" viewBox="0 0 1200 360" role="img" aria-label="dsh-autotier workflow">
2
+ <title>dsh-autotier workflow</title>
3
+ <rect width="1200" height="360" rx="18" fill="#0d1117"/>
4
+ <text x="60" y="58" fill="#f0f6fc" font-family="ui-sans-serif,system-ui,sans-serif" font-size="30" font-weight="700">dsh-autotier</text>
5
+ <text x="60" y="92" fill="#8b949e" font-family="ui-monospace,monospace" font-size="16">DeepSeek Harness plugin</text>
6
+ <line x1="60" y1="118" x2="1140" y2="118" stroke="#30363d"/>
7
+ <rect x="120" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
8
+ <rect x="216" y="191" width="48" height="48" rx="7" fill="none" stroke="#16a34a" stroke-width="3"/><path d="M225 203l9 9-9 9m16 0h12" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <circle cx="330" cy="270" r="13" fill="#16a34a"/><text x="330" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">1</text>
10
+ <path d="M368 220h64" stroke="#16a34a" stroke-width="3"/><path d="M422 213l10 7-10 7" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round"/>
11
+ <rect x="480" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
12
+ <path d="M580 192h14v9a7 7 0 1 0 0 14v9H580z" fill="none" stroke="#16a34a" stroke-width="3"/><path d="M601 192h14v9a7 7 0 1 1 0 14v9H601" fill="none" stroke="#16a34a" stroke-width="3"/>
13
+ <circle cx="690" cy="270" r="13" fill="#16a34a"/><text x="690" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">2</text>
14
+ <path d="M728 220h64" stroke="#16a34a" stroke-width="3"/><path d="M782 213l10 7-10 7" fill="none" stroke="#16a34a" stroke-width="3" stroke-linecap="round"/>
15
+ <rect x="840" y="150" width="240" height="140" rx="14" fill="#161b22" stroke="#16a34a" stroke-width="2"/>
16
+ <path d="M960 188l6 24 24 6-24 6-6 24-6-24-24-6 24-6z" fill="none" stroke="#16a34a" stroke-width="3" stroke-linejoin="round"/>
17
+ <circle cx="1050" cy="270" r="13" fill="#16a34a"/><text x="1050" y="276" fill="#0d1117" text-anchor="middle" font-family="ui-monospace,monospace" font-size="14" font-weight="700">3</text>
18
+ <text x="60" y="332" fill="#8b949e" font-family="ui-monospace,monospace" font-size="14">PerryLink DSH plugin family · Apache-2.0</text>
19
+ </svg>