dsh-switchman 1.3.0 → 1.3.1

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.de.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | **Deutsch** | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **Die Switchman-Familie**, gleicher Autor, gleiche Orchestrierung: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (das OpenCode-Original) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (die ZCode-Portierung) · **dsh-switchman** (dieses Repo, für DeepSeek Harness).
6
+
7
+ ![dsh-switchman — der Kontext-Wasserstand steuert den Weichenwärter und stellt die Route](docs/assets/hero.svg)
8
+
9
+ > Kontext auf einer Anzeige. Aufgaben verteilen sich selbst.
10
+
11
+ Ein Plugin für [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Einmal installiert, hört Ihr Hauptmodell auf, alles selbst zu erledigen, und wird zum Dispatcher: Wasserstand messen, Spur wählen, Aufgabe verteilen, Arbeit prüfen. Vier Dinge:
12
+
13
+ **1. Kontext-Wasserstandskontrolle.** Jeder Turn misst die Live-Tokens der Sitzung. Soft (Standard 50k) empfiehlt zu delegieren, hard (90k) verengt das Lesebudget pro Turn und drängt zum Abschluss, force (130k) sichert die Sitzung und übergibt sie an die Kompaktierung — automatisch. Fahren Sie eine Sitzung den ganzen Tag; Ihr Kontext ertrinkt nie im eigenen Verlauf. Jeder dispatchte Subagent trägt sein eigenes Hard Cap und endet mit einer HANDOFF-Zusammenfassung, sobald es erreicht ist.
14
+
15
+ **2. Dispatch auf sechs Spuren.** economy / mechanical / main / hard / vision / review — sechs kognitive Spuren. Wählen Sie auf der Einstellungsseite Kandidatenmodelle pro Spur, sortieren Sie sie stärkste zuerst (optionale S/A/B/C-Tier-Verankerung) und pinnen Sie pro Route einen Reasoning-Effort — das Dropdown listet die Stufen, die jedes Modell *tatsächlich* unterstützt, nicht drei generische Stufen. Jedem Prompt liegt eine `[SWITCHMAN:POOLS]`-Tabelle bei, damit das Modell weiß, wen es aufrufen soll; der `enforce`-Modus lehnt Modelle außerhalb des Pools rundweg ab.
16
+
17
+ **3. Spracheinstellungen.** Je ein Dropdown für Antworten, Codekommentare und verfasste Dokumente. Nicht gesetzt? Sie werden einmal gefragt, es wird für immer gemerkt, und jede spätere Sitzung hält sich daran.
18
+
19
+ **4. Doktrin: standardmäßig delegieren.** Ersetzt die mit DSH ausgelieferte konservative Team-Policy („Teammates nur auf Anfrage erstellen“): Kleinkram bleibt in eigener Hand (<200 gelesene Zeilen, <50 geänderte), echte Arbeit wird standardmäßig delegiert; jede Änderung wird verifiziert — >20 Zeilen gehen an einen Tester, >300 Zeilen oder Kernlogik an einen Reviewer. Sag „keine Teams nutzen“, und er tritt sofort zurück.
20
+
21
+ Nur ein Modell? Lohnt sich trotzdem — die Wasserstandskontrolle und die Doktrin interessieren sich nicht dafür, wie viele Modelle Sie haben.
22
+
23
+ ## Mitgelieferte Skills
24
+
25
+ - **db-query** — Read-only-Verifikation für MySQL/Redis: führt SQL aus, um Datensätze, Cache-Keys / TTLs und store-übergreifende Konsistenz zu prüfen. Verweigert jede Schreiboperation. Einmalige Einrichtung unten.
26
+ - **git-commit-message** — konventionskonformer Commit-Text. Nur Text; fasst git nie an.
27
+ - **requirement-docs** — eine einzige Spezifikation für Anforderungen / PRD / Design-Dokumente, archiviert unter `docs/requirements-and-design/`.
28
+
29
+ ## Schnellstart
30
+
31
+ 1. **Installieren** — aus einer beliebigen Agent-Sitzung oder über den Web-Plugin-Manager:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ oder aus einem lokalen Checkout (verlinkt; nach dem Pullen von Änderungen `remove_bundle` + `install_bundle` erneut ausführen):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **DSH neu starten** — beenden Sie die App vollständig und öffnen Sie sie neu (ein Seiten-Reload genügt nicht), damit die Client-Modul-Tabelle das Bundle aufnimmt.
44
+
45
+ 3. **Einstellungsseite öffnen** — Settings → dsh-switchman. Der erste Bildschirm sind die Spracheinstellungen: je ein Dropdown für Antworten / Kommentare / Dokumente, jedes mit einer Live-Zeile `current: …`. Sie dürfen sie überspringen — Sie werden einmal gefragt, und es bleibt gemerkt.
46
+
47
+ ![Einstellungsseite und Spracheinstellungen](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Die sechs Pools füllen** — jede Pool-Karte listet Kandidaten gruppiert nach Provider; haken Sie die gewünschten an. Haken Sie **manual order** an, und die Karte wird zu einer nummerierten Prioritätsliste mit ↑ ↓ ×-Steuerungen. Das Effort-Dropdown neben jeder ausgewählten Route steht standardmäßig auf *follow lane*; beim Fixieren listet es die Stufen, die dieses Modell tatsächlich unterstützt (Low / High / Max…). Eine Zusammenfassungszeile verfolgt den Fortschritt live: “6/6 pools set · 3 ranked · mode advice”.
50
+
51
+ ![Dispatch-Pools](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Ranking und Watermark** — die Reihenfolge der Ranking-Tabelle ist die Fähigkeitsreihenfolge (stärkste zuerst), mit optionalen S/A/B/C-Tiers; der Ausführungsmodus ist `off` / advice / enforce (enforce = Modelle außerhalb des Pools werden abgelehnt). Darunter verengt der Watermark-Abschnitt das Verhalten entlang des Token-Verbrauchs: drei Schwellenwerte, ein Lesebudget pro Aufruf, das Hard-Mode-Verhalten (cap / deny), ein Schalter für automatische Übergabe und ein separates Limit für Subagents. Die unterste Zeile trägt die Befehle: `/ctx-pause` zum Stoppen der Eingriffe · `/ctx-resume` zum Fortsetzen · `/ctx-handover` zum Sichern und sofortigen Übergeben.
54
+
55
+ ![Ranking und Kontext-Watermark](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Verifizieren** — das ⚡-Badge erscheint neben dem Preset-Chip in der Kopfzeile jeder Sitzung; fragen Sie das Modell „was sagt der letzte Abschnitt deines Systemprompts?“ — es sollte die dsh-switchman-Doktrin erwähnen.
58
+
59
+ **db-query – einmalige Einrichtung** (die Skript-Abhängigkeiten liegen im Skill-Verzeichnis):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Wie es funktioniert
66
+
67
+ - Die Host-Hälfte (`index.js` + `host/`) injiziert drei dynamische Systemprompt-Abschnitte, die Lesebudget- und Enforce-Schranken, die automatische Antworterfassung und drei Slash-Befehle. Alle Einstellungen sind flüchtige Felder — gespeicherte Änderungen greifen bei der nächsten Prompt-Zusammenstellung, ohne Neustart.
68
+ - Die Client-Hälfte (`client.js`) rendert das ⚡-Badge neben dem Preset-Chip sowie die Einstellungsseite über die offiziellen Settings-Form-Dienste.
69
+ - `cordis.patch.yml` gibt die Plugin-Liste jedes mitgelieferten Presets wortgleich wieder und erweitert nur das Persona-Suffix; die Agent-Teams-Tools selbst kommen weiterhin aus dem mitgelieferten `@deepseek-ai/dsh-experimental-agent-team-profile`.
70
+
71
+ ## Wartung
72
+
73
+ - Nach einem DSH-Upgrade, das die Plugin-Listen der mitgelieferten Presets ändert: `cordis.patch.yml` aus den neuen `presets/*.patch.yml` neu synchronisieren (das Doktrin-Suffix behalten) und anschließend neu installieren.
74
+ - Die modellseitigen Protokollzeilen (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) sind bewusst Englisch und byte-stabil — nicht lokalisieren.
75
+ - `npm pack --dry-run` muss in der geprüften Form von 34 Dateien / ~111 kB bleiben (die `docs/`-Screenshots werden nie mitgeliefert).
76
+
77
+ ## Lizenz
78
+
79
+ MIT
package/README.es.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | **Español** | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **La familia switchman**, mismo autor, misma orquestación: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (el original para OpenCode) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (el port para ZCode) · **dsh-switchman** (este repositorio, para DeepSeek Harness).
6
+
7
+ ![dsh-switchman — el nivel de agua del contexto mueve al guardagujas y lanza la ruta](docs/assets/hero.svg)
8
+
9
+ > Contexto en un medidor. Las tareas se despachan solas.
10
+
11
+ Un plugin para [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Una vez instalado, tu modelo principal deja de hacerlo todo por su cuenta y pasa a ser un despachador: medir el nivel de agua, elegir el carril, repartir la tarea, revisar el trabajo. Cuatro cosas:
12
+
13
+ **1. Control del nivel de agua del contexto.** Cada turno mide los tokens en vivo de la sesión. Soft (50k por defecto) aconseja delegar, hard (90k) aprieta el presupuesto de lectura por turno y empuja al cierre, force (130k) respalda la sesión y la entrega a la compactación — automáticamente. Usa una sesión todo el día; tu contexto nunca se ahoga en su propio historial. Cada subagente despachado lleva su propio hard cap y termina con un resumen HANDOFF al alcanzarlo.
14
+
15
+ **2. Despacho de seis carriles.** economy / mechanical / main / hard / vision / review — seis carriles cognitivos. Elige modelos candidatos por carril en la página de ajustes, ordénalos del más fuerte al más débil (anclaje de tiers S/A/B/C opcional) y fija un effort de razonamiento por ruta — el desplegable lista los niveles que cada modelo *realmente* soporta, no tres niveles genéricos. Cada prompt incluye una tabla `[SWITCHMAN:POOLS]` para que el modelo sepa a quién llamar; el modo `enforce` rechaza de plano los modelos fuera del pool.
16
+
17
+ **3. Preferencias de idioma.** Un desplegable para cada una: respuestas, comentarios de código y documentos redactados. ¿Sin definir? Se te pregunta una vez, se recuerda para siempre y cada sesión posterior lo sigue.
18
+
19
+ **4. Doctrina de delegación por defecto.** Sustituye la política de equipo conservadora que trae DSH («solo crea teammates cuando se lo pidan»): lo trivial se gestiona directamente (<200 líneas leídas, <50 modificadas), el trabajo real se delega por defecto; todo cambio se verifica — >20 líneas van a un tester, >300 líneas o lógica central van a un reviewer. Di «no uses equipos» y se aparta al instante.
20
+
21
+ ¿Solo un modelo? Sigue mereciendo la pena — el control del nivel de agua y la doctrina no dependen de cuántos modelos tengas.
22
+
23
+ ## Skills incluidas
24
+
25
+ - **db-query** — verificación de solo lectura sobre MySQL/Redis: ejecuta SQL para comprobar registros, claves de caché / TTLs y la consistencia entre almacenes. Rechaza toda escritura. Configuración única más abajo.
26
+ - **git-commit-message** — texto de commit conforme a la convención. Solo texto; nunca toca git.
27
+ - **requirement-docs** — una sola especificación para requisitos / PRD / documentos de diseño, archivada en `docs/requirements-and-design/`.
28
+
29
+ ## Inicio rápido
30
+
31
+ 1. **Instalar** — desde cualquier sesión de agente, o desde el gestor de plugins web:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ o desde un checkout local (enlazado; reejecuta `remove_bundle` + `install_bundle` tras incorporar cambios):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **Reiniciar DSH** — cierra la app por completo y vuelve a abrirla (recargar la página no basta) para que la tabla de módulos del cliente recoja el bundle.
44
+
45
+ 3. **Abrir la página de ajustes** — Settings → dsh-switchman. La primera pantalla son las preferencias de idioma: un desplegable para respuestas / comentarios / documentos, cada uno con una línea `current: …` en vivo. Sáltatelos si quieres — se te preguntará una vez y se recordará.
46
+
47
+ ![Página de ajustes y preferencias de idioma](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Rellenar los seis pools** — cada tarjeta de pool lista candidatos agrupados por proveedor; marca los que quieras. Marca **manual order** y la tarjeta pasa a ser una lista de prioridades numerada con controles ↑ ↓ ×. El desplegable de effort junto a cada ruta seleccionada queda por defecto en *follow lane*; al fijarlo se listan los niveles que ese modelo realmente soporta (Low / High / Max…). Una línea de resumen sigue el progreso en vivo: “6/6 pools set · 3 ranked · mode advice”.
50
+
51
+ ![Pools de despacho](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Ranking y watermark** — el orden de la tabla de ranking es el orden de capacidad (el más fuerte primero), con tiers S/A/B/C opcionales; el modo de ejecución es `off` / advice / enforce (enforce = los modelos fuera del pool se rechazan). Debajo, la sección de watermark aprieta el comportamiento según el uso de tokens: tres umbrales, un presupuesto de lectura por llamada, el comportamiento del modo hard (cap / deny), un interruptor de entrega automática y un tope separado para subagentes. La última línea lleva los comandos: `/ctx-pause` para dejar de intervenir · `/ctx-resume` para reanudar · `/ctx-handover` para respaldar y entregar ya.
54
+
55
+ ![Ranking y watermark de contexto](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Verificar** — la insignia ⚡ aparece junto al chip de preset en la cabecera de cualquier sesión; pregúntale al modelo “¿qué dice la última sección de tu system prompt?” — debería mencionar la doctrina de dsh-switchman.
58
+
59
+ **Configuración única de db-query** (las dependencias del script viven dentro del directorio del skill):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Cómo funciona
66
+
67
+ - La mitad Host (`index.js` + `host/`) inyecta tres secciones dinámicas en el system prompt, las compuertas de presupuesto de lectura y de enforce, la captura automática de respuestas y tres comandos slash. Todos los ajustes son campos volátiles — los cambios guardados se aplican en el siguiente ensamblado del prompt, sin reinicio.
68
+ - La mitad Client (`client.js`) pinta la insignia ⚡ junto al chip de preset y la página de ajustes, mediante los servicios oficiales de formularios de ajustes.
69
+ - `cordis.patch.yml` vuelve a declarar textualmente la lista de plugins de cada preset incluido y solo amplía el sufijo de persona; las herramientas de Agent Teams en sí siguen viniendo del `@deepseek-ai/dsh-experimental-agent-team-profile` incluido.
70
+
71
+ ## Mantenimiento
72
+
73
+ - Tras una actualización de DSH que cambie las listas de plugins de los presets incluidos, resincroniza `cordis.patch.yml` desde los nuevos `presets/*.patch.yml` (conserva el sufijo de doctrina) y reinstala.
74
+ - Las líneas de protocolo dirigidas al modelo (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) son deliberadamente en inglés y byte-estables — no las localices.
75
+ - `npm pack --dry-run` debe mantenerse en la forma auditada de 34 archivos / ~111 kB (las capturas de `docs/` nunca se incluyen).
76
+
77
+ ## Licencia
78
+
79
+ MIT
package/README.fr.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | **Français** | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **La famille switchman**, même auteur, même orchestration : [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (l'original OpenCode) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (le portage ZCode) · **dsh-switchman** (ce dépôt, pour DeepSeek Harness).
6
+
7
+ ![dsh-switchman — le niveau d'eau du contexte commande l'aiguilleur et lance l'itinéraire](docs/assets/hero.svg)
8
+
9
+ > Le contexte sur un compteur. Les tâches se dispatchent seules.
10
+
11
+ Un plugin pour [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Une fois installé, votre modèle principal cesse de tout faire lui-même et devient répartiteur : mesurer le niveau d'eau, choisir le couloir, distribuer la tâche, vérifier le travail. Quatre choses :
12
+
13
+ **1. Contrôle du niveau d'eau du contexte.** Chaque tour mesure les tokens vivants de la session. Soft (50k par défaut) conseille de déléguer, hard (90k) resserre le budget de lecture par tour et pousse à conclure, force (130k) sauvegarde la session et passe le relais à la compaction — automatiquement. Faites tourner une session toute la journée ; votre contexte ne se noie jamais dans son propre historique. Chaque sous-agent dispatché porte son propre hard cap et se termine par un résumé HANDOFF une fois celui-ci atteint.
14
+
15
+ **2. Dispatch à six couloirs.** economy / mechanical / main / hard / vision / review — six couloirs cognitifs. Choisissez les modèles candidats par couloir dans la page de réglages, classez-les du plus fort au plus faible (ancrage de tiers S/A/B/C optionnel) et épinglez un effort de raisonnement par route — le menu déroulant liste les niveaux que chaque modèle *supporte réellement*, pas trois niveaux génériques. Une table `[SWITCHMAN:POOLS]` accompagne chaque prompt pour que le modèle sache qui appeler ; le mode `enforce` rejette sans appel les modèles hors pool.
16
+
17
+ **3. Préférences de langue.** Un menu déroulant pour chacun : réponses, commentaires de code et documents rédigés. Non défini ? On vous le demande une fois, c'est retenu pour toujours, et chaque session suivante s'y tient.
18
+
19
+ **4. Doctrine de délégation par défaut.** Remplace la politique d'équipe conservatrice livrée avec DSH (« ne créer des teammates que sur demande ») : le trivial reste traité en direct (<200 lignes lues, <50 modifiées), le vrai travail est délégué par défaut ; toute modification est vérifiée — >20 lignes vont à un testeur, >300 lignes ou la logique centrale vont à un réviseur. Dites « pas d'équipes » et il s'efface aussitôt.
20
+
21
+ Un seul modèle ? Ça vaut toujours le coup — le contrôle du niveau d'eau et la doctrine ne dépendent pas de votre nombre de modèles.
22
+
23
+ ## Skills incluses
24
+
25
+ - **db-query** — vérification MySQL/Redis en lecture seule : exécute du SQL pour vérifier les enregistrements, les clés de cache / TTL et la cohérence inter-stores. Refuse toute écriture. Configuration unique ci-dessous.
26
+ - **git-commit-message** — texte de commit conforme aux conventions. Texte uniquement ; ne touche jamais à git.
27
+ - **requirement-docs** — une seule spécification pour exigences / PRD / documents de conception, archivée dans `docs/requirements-and-design/`.
28
+
29
+ ## Démarrage rapide
30
+
31
+ 1. **Installer** — depuis n'importe quelle session d'agent, ou depuis le gestionnaire de plugins web :
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ ou depuis un checkout local (lié ; relancez `remove_bundle` + `install_bundle` après avoir récupéré des modifications) :
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **Redémarrer DSH** — quittez entièrement l'application puis rouvrez-la (recharger la page ne suffit pas) pour que la table des modules client prenne en compte le bundle.
44
+
45
+ 3. **Ouvrir la page de réglages** — Settings → dsh-switchman. Le premier écran est celui des préférences de langue : un menu déroulant pour réponses / commentaires / documents, chacun avec une ligne `current: …` en direct. Passez-les si vous voulez — on vous demandera une fois et ce sera retenu.
46
+
47
+ ![Page de réglages et préférences de langue](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Remplir les six pools** — chaque carte de pool liste les candidats groupés par fournisseur ; cochez ceux que vous voulez. Cochez **manual order** et la carte devient une liste de priorités numérotée avec des contrôles ↑ ↓ ×. Le menu d'effort à côté de chaque route sélectionnée vaut *follow lane* par défaut ; l'épingler liste les niveaux que ce modèle supporte réellement (Low / High / Max…). Une ligne de résumé suit la progression en direct : “6/6 pools set · 3 ranked · mode advice”.
50
+
51
+ ![Pools de dispatch](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Classement et watermark** — l'ordre de la table de classement est l'ordre de capacité (le plus fort d'abord), avec des tiers S/A/B/C optionnels ; le mode d'exécution est `off` / advice / enforce (enforce = les modèles hors pool sont rejetés). En dessous, la section watermark resserre le comportement selon la consommation de tokens : trois seuils, un budget de lecture par appel, le comportement du mode hard (cap / deny), un interrupteur de remise automatique et un plafond séparé pour les sous-agents. La ligne du bas porte les commandes : `/ctx-pause` pour cesser d'intervenir · `/ctx-resume` pour reprendre · `/ctx-handover` pour sauvegarder et passer le relais maintenant.
54
+
55
+ ![Classement et watermark du contexte](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Vérifier** — le badge ⚡ apparaît à côté de la puce de preset dans l'en-tête de n'importe quelle session ; demandez au modèle “que dit la dernière section de ton system prompt ?” — il devrait mentionner la doctrine dsh-switchman.
58
+
59
+ **Configuration unique de db-query** (les dépendances du script vivent dans le répertoire du skill) :
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Fonctionnement
66
+
67
+ - La partie Host (`index.js` + `host/`) injecte trois sections dynamiques dans le system prompt, les gardes de budget de lecture et d'enforce, la capture automatique des réponses et trois commandes slash. Tous les réglages sont des champs volatils — les changements enregistrés s'appliquent au prochain assemblage de prompt, sans redémarrage.
68
+ - La partie Client (`client.js`) rend le badge ⚡ à côté de la puce de preset ainsi que la page de réglages, via les services officiels de formulaires de réglages.
69
+ - `cordis.patch.yml` reprend textuellement la liste de plugins de chaque preset livré et n'étend que le suffixe de persona ; les outils Agent Teams eux-mêmes viennent toujours du `@deepseek-ai/dsh-experimental-agent-team-profile` livré.
70
+
71
+ ## Maintenance
72
+
73
+ - Après une mise à niveau de DSH qui modifie les listes de plugins des presets livrés, resynchronisez `cordis.patch.yml` depuis les nouveaux `presets/*.patch.yml` (gardez le suffixe de doctrine), puis réinstallez.
74
+ - Les lignes de protocole destinées au modèle (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) sont volontairement en anglais et stables à l'octet — ne les localisez pas.
75
+ - `npm pack --dry-run` doit rester à la forme auditée de 34 fichiers / ~111 kB (les captures d'écran de `docs/` ne partent jamais).
76
+
77
+ ## Licence
78
+
79
+ MIT
package/README.it.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | **Italiano** | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **La famiglia switchman**, stesso autore, stessa orchestrazione: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (l'originale per OpenCode) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (il port per ZCode) · **dsh-switchman** (questo repository, per DeepSeek Harness).
6
+
7
+ ![dsh-switchman — il livello dell'acqua del contesto comanda lo switchman, che devia la rotta](docs/assets/hero.svg)
8
+
9
+ > Contesto al contatore. I task si assegnano da soli.
10
+
11
+ Un plugin per [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Una volta installato, il tuo modello primario smette di fare tutto da solo e diventa un dispatcher: misura il livello dell'acqua, sceglie la corsia, assegna il task, controlla il lavoro. Quattro cose:
12
+
13
+ **1. Controllo del livello dell'acqua del contesto.** A ogni turno misura i token live della sessione. Soft (50k di default) consiglia di delegare, hard (90k) stringe il budget di lettura per turno e spinge alla chiusura, force (130k) esegue il backup della sessione e la consegna alla compattazione — automaticamente. Tieni una sessione aperta tutto il giorno; il tuo contesto non affoga mai nella sua stessa cronologia. Ogni subagent dispatchato porta con sé il proprio hard cap ed esce con un riepilogo HANDOFF quando lo raggiunge.
14
+
15
+ **2. Dispatch a sei corsie.** economy / mechanical / main / hard / vision / review — sei corsie cognitive. Scegli i modelli candidati per corsia nella pagina delle impostazioni, ordinali dal più forte (ancoraggio opzionale a fasce S/A/B/C) e fissa un reasoning effort per route — il menu a tendina elenca i livelli che ogni modello *supporta davvero*, non tre livelli generici. Una tabella `[SWITCHMAN:POOLS]` viaggia con ogni prompt, così il modello sa a chi rivolgersi; la modalità `enforce` rifiuta seccamente i modelli fuori pool.
16
+
17
+ **3. Preferenze linguistiche.** Un menu a tendina per le risposte, uno per i commenti del codice e uno per i documenti redatti. Non impostato? Ti viene chiesto una volta, resta ricordato per sempre e ogni sessione successiva lo rispetta.
18
+
19
+ **4. Dottrina delegate-by-default.** Sostituisce la politica di team conservativa di serie di DSH ("crea membri del team solo su richiesta"): le minuzie restano fai-da-te (<200 righe lette, <50 modificate), il lavoro vero viene delegato di default; ogni modifica viene verificata — oltre 20 righe va a un tester, oltre 300 righe o logica centrale va a un reviewer. Di' "non usare i team" e si fa da parte all'istante.
20
+
21
+ Un solo modello? Vale comunque la pena — il controllo del livello dell'acqua e la dottrina non guardano a quanti modelli hai.
22
+
23
+ ## Skill incluse
24
+
25
+ - **db-query** — verifica in sola lettura su MySQL/Redis: esegui SQL per controllare record, chiavi di cache / TTL, coerenza tra store. Rifiuta ogni scrittura. Configurazione una tantum qui sotto.
26
+ - **git-commit-message** — testo di commit conforme alle convenzioni. Solo testo; non tocca mai git.
27
+ - **requirement-docs** — un'unica specifica per requisiti / PRD / documenti di design, archiviata in `docs/requirements-and-design/`.
28
+
29
+ ## Avvio rapido
30
+
31
+ 1. **Installa** — da qualsiasi sessione agent, o dal gestore plugin Web:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ oppure da un checkout locale (link; riesegui `remove_bundle` + `install_bundle` dopo aver fatto pull delle modifiche):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **Riavvia DSH** — chiudi completamente l'app e riaprila (ricaricare la pagina non basta), così la tabella dei moduli client rileva il bundle.
44
+
45
+ 3. **Apri la pagina delle impostazioni** — Settings → dsh-switchman. La prima schermata è le preferenze linguistiche: un menu a tendina per risposte / commenti / documenti, ciascuno con una riga live `current: …`. Salta pure — ti verrà chiesto una volta e verrà ricordato.
46
+
47
+ ![Pagina impostazioni e preferenze linguistiche](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Compila i sei pool** — ogni scheda pool elenca i candidati raggruppati per provider; spunta quelli che vuoi. Spunta **manual order** e la scheda diventa una lista di priorità numerata con i controlli ↑ ↓ ×. Il menu effort accanto a ogni route selezionata è su *follow lane* di default; fissandolo mostra i livelli che quel modello supporta davvero (Low / High / Max…). Una riga di riepilogo traccia i progressi in tempo reale: “6/6 pool impostati · 3 in classifica · modalità advice”.
50
+
51
+ ![Pool di dispatch](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Classifica e watermark** — l'ordine della tabella di classifica è l'ordine di capacità (prima i più forti), con fasce opzionali S/A/B/C; la modalità di esecuzione è `off` / advice / enforce (enforce = i modelli fuori pool vengono rifiutati). Sotto, la sezione watermark irrigidisce il comportamento in base al consumo di token: tre soglie, un budget di lettura per chiamata, il comportamento della modalità hard (cap / deny), un interruttore per l'handover automatico e un cap separato per i subagent. La riga in fondo porta i comandi: `/ctx-pause` per smettere di intervenire · `/ctx-resume` per riprendere · `/ctx-handover` per fare subito backup e passaggio di consegne.
54
+
55
+ ![Classifica e watermark del contesto](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Verifica** — il badge ⚡ appare accanto al chip del preset nell'intestazione di ogni sessione; chiedi al modello “cosa dice l'ultima sezione del tuo system prompt?” — dovrebbe menzionare la dottrina dsh-switchman.
58
+
59
+ **Configurazione una tantum di db-query** (le dipendenze degli script vivono nella directory della skill):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Come funziona
66
+
67
+ - La parte Host (`index.js` + `host/`) inietta tre sezioni dinamiche del system prompt, i gate di budget di lettura ed enforce, la cattura automatica delle risposte e tre comandi slash. Tutte le impostazioni sono campi volatili — le modifiche salvate valgono dall'assemblaggio del prompt successivo, senza riavvio.
68
+ - La parte Client (`client.js`) renderizza il badge ⚡ accanto al chip del preset e la pagina delle impostazioni, attraverso i servizi ufficiali settings-form.
69
+ - `cordis.patch.yml` ripete verbatim la lista di plugin di ogni preset di serie ed estende solo il suffisso di persona; gli strumenti Agent Teams in sé continuano a venire dal `@deepseek-ai/dsh-experimental-agent-team-profile` di serie.
70
+
71
+ ## Manutenzione
72
+
73
+ - Dopo un upgrade di DSH che cambia le liste di plugin dei preset di serie, risincronizza `cordis.patch.yml` dai nuovi `presets/*.patch.yml` (conserva il suffisso della dottrina), poi reinstalla.
74
+ - Le righe di protocollo rivolte al modello (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) sono deliberatamente in inglese e stabili al byte — non localizzarle.
75
+ - `npm pack --dry-run` deve restare alla forma auditata di 34 file / ~111 kB (gli screenshot in `docs/` non viaggiano mai nel pacchetto).
76
+
77
+ ## License
78
+
79
+ MIT
package/README.ja.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | **日本語** | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **switchman ファミリー**。同じ作者、同じオーケストレーション指針:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植版)· **dsh-switchman**(本リポジトリ、DeepSeek Harness 版)。
6
+
7
+ ![dsh-switchman — コンテキスト水位が転轍士を動かし、タスクを正しいレーンへ投げ込む](docs/assets/hero.svg)
8
+
9
+ > コンテキストに水量計を付けると、タスクは自分でレーンを見つけます。
10
+
11
+ [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)用のプラグインです。導入すると、メインモデルは「何もかも自分でこなす」役を降りてディスパッチャーになります:水位を測り、レーンを選び、タスクを配り、仕上がりを確認する。やることは 4 つです:
12
+
13
+ **1. コンテキスト水位制御。** 毎ラウンドでセッション token をリアルタイム計測します。soft(デフォルト 50k)は委譲を勧め、hard(90k)はラウンドごとの読み取り予算を引き締めてまとめに入るよう促し、force(130k)はセッションを自動バックアップして圧縮へ引き渡します。セッションを一日中回しても、コンテキストが自分の履歴で溺れることはありません。委譲された各サブエージェントは独立したハード上限を持ち、超えたら HANDOFF 要約を書いて退場します。
14
+
15
+ **2. 6 レーンのディスパッチ。** economy / mechanical / main / hard / vision / review の 6 つの認知レーン:設定ページで候補モデルを選び、最強優先でランク付けし(S/A/B/C ティアのアンカーは任意)、ルートごとに思考強度をピン留めできます——ドロップダウンのレベル一覧は各モデルが*実際に*対応しているものから直接来るもので、汎用の三段階ではありません。`[SWITCHMAN:POOLS]` 推奨表がプロンプトとともに主モデルへ渡され、主モデルはそれに従って仕事を振ります。`enforce` モードではプール外モデルを即座に拒否します。
16
+
17
+ **3. 言語設定。** 返信・コードコメント・ドキュメントの 3 種類に、それぞれドロップダウンを一つ。未設定なら初回に一度だけ尋ねて永久に記憶し、以後のすべてのセッションが自動で従います。
18
+
19
+ **4. デフォルト委譲のドクトリン。** DSH 出荷時の保守的なチーム方針(「頼まれたときだけチームメイトを作る」)を置き換えます:些細な作業は自分で手を動かし(読み <200 行、変更 <50 行)、大きな仕事はデフォルトで委譲。変更は必ず検証されます——20 行超は tester へ、300 行超またはコアロジックに触れる変更は reviewer へ。「チームを使うな」と一言言えば、即座に身を引きます。
20
+
21
+ モデルが一つだけ?それでも導入する価値があります——水位制御とドクトリンは、モデルの数など気にしません。
22
+
23
+ ## 同梱スキル
24
+
25
+ - **db-query** — MySQL / Redis 読み取り専用検証:SQL を回してレコード照合、キャッシュキー / TTL 確認、ストア横断の整合性チェックを行い、書き込みは一切拒否します。初回使用時に初期化が必要(下記参照)。
26
+ - **git-commit-message** — 規範に沿った commit 文面を生成。テキストだけ出力し、git は一切触りません。
27
+ - **requirement-docs** — 要件分析 / PRD / 設計ドキュメントの統一規範。成果物は `docs/requirements-and-design/` にアーカイブします。
28
+
29
+ ## クイックスタート
30
+
31
+ 1. **インストール** — 任意のセッションでエージェントに実行させるか、Web プラグイン管理ページから:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ またはローカルチェックアウトから(link 方式。更新取り込み後は `remove_bundle` + `install_bundle` で再インストール):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **DSH を再起動** — アプリを完全に終了して開き直します(ページ再読み込みでは不十分)。クライアントモジュールのテーブルがこの bundle を取り込めるようになります。
44
+
45
+ 3. **設定ページを開く** — 設定 → dsh-switchman。最初の画面は言語設定です:返信 / コメント / ドキュメントに対応する 3 つのドロップダウンがあり、それぞれの下に「現在: …」のステータス行が付きます。設定しなくても大丈夫——初回に一度だけ尋ねられて記憶されます。
46
+
47
+ ![設定ページと言語設定](docs/assets/conf-demo1.png)
48
+
49
+ 4. **六つのプールを埋める** — 各プールカードにはプロバイダー別にグループ化された候補モデルが並びます。欲しいものにチェック。**手動順**にチェックすると、カードは ↑ ↓ × 操作付きの番号付き優先リストになります。選択した各ルートの横にある思考強度ドロップダウンの初期値は「レーンに従う」で、ピン留めすればそのモデルが実際に対応するレベル(Low / High / Max…)が選べます。サマリー行が進捗をリアルタイムに反映します:「プール設定 6/6 · ランク付け 3 件 · モード アドバイス」。
50
+
51
+ ![ディスパッチプールの設定](docs/assets/conf-demo2.png)
52
+
53
+ 5. **能力ランクと水位** — ランキング表の番号はそのまま能力順(最強が先)で、S/A/B/C ティアのアンカーは任意。実行モードは三態です:`off` / アドバイス / enforce(enforce = プール外モデルは即拒否)。その下の水位セクションは token 使用量に応じて段階的に挙動を引き締めます:三段階のしきい値、1 回あたりの読み取り予算、hard モードの挙動(制限付き通過 / 遮断)、自動ハンドオーバー切替、サブエージェント独立上限。最下部にはコマンド行があります:`/ctx-pause` 介入を一時停止 · `/ctx-resume` 再開 · `/ctx-handover` 即時バックアップして引き継ぎ。
54
+
55
+ ![能力ランクとコンテキスト水位](docs/assets/conf-demo3.png)
56
+
57
+ 6. **検証** — どのセッションでもヘッダーのプリセット chip の横に ⚡ バッジが表示されます。モデルに「システムプロンプトの最後のセクションには何が書かれていますか」と尋ねてみてください。dsh-switchman のドクトリンに言及するはずです。
58
+
59
+ **db-query の初回セットアップ**(スクリプトの依存関係はスキルディレクトリ内に置かれます):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## 仕組み
66
+
67
+ - Host 側(`index.js` + `host/`)は、動的システムプロンプトセクション 3 つ、読み取り予算と enforce の二重ゲート、回答の自動キャプチャ、スラッシュコマンド 3 つを注入します。設定はすべて volatile フィールドで、保存すれば次のプロンプト組み立てから反映され、再起動は不要です。
68
+ - Client 側(`client.js`)はプリセット chip の横の ⚡ バッジと設定ページを描画します。公式の settings-form サービス経由です。
69
+ - `cordis.patch.yml` は出荷時プリセットのプラグインリストをフィールド単位でそのまま写し、persona suffix だけを拡張します。Agent Teams ツール本体は引き続き出荷時の `@deepseek-ai/dsh-experimental-agent-team-profile` から供給されます。
70
+
71
+ ## メンテナンス
72
+
73
+ - DSH のアップグレード後、出荷時プリセットのプラグインリストが変わっていたら、新しい `presets/*.patch.yml` から `cordis.patch.yml` を再同期し(doctrine suffix は維持)、再インストールします。
74
+ - プロトコル行(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)は意図的に英語・バイト安定を保っています——ローカライズしないでください。
75
+ - `npm pack --dry-run` は監査済みの 34 ファイル / ~111 kB の形を維持する必要があります(`docs/` のスクリーンショットはパッケージに入りません)。
76
+
77
+ ## License
78
+
79
+ MIT
package/README.ko.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | **한국어** | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **switchman 패밀리**, 같은 저자, 같은 조율 방침: [opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 원판) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 이식판) · **dsh-switchman**(이 저장소, DeepSeek Harness 버전).
6
+
7
+ ![dsh-switchman — 컨텍스트 수위가 전환수를 움직여 작업을 올바른 레인으로 던져 넣는다](docs/assets/hero.svg)
8
+
9
+ > 컨텍스트에 수도계량기를 달면, 작업이 스스로 레인을 찾습니다.
10
+
11
+ [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH) 플러그인입니다. 설치하고 나면 기본 모델은 "모든 걸 자기가 처리"하던 방식을 접고 디스패처가 됩니다: 수위를 재고, 레인을 고르고, 작업을 나눠주고, 결과를 검수합니다. 하는 일은 네 가지입니다:
12
+
13
+ **1. 컨텍스트 수위 제어.** 라운드마다 세션 token 을 실시간 계측합니다. soft(기본값 50k)는 위임을 권고하고, hard(90k)는 라운드당 읽기 예산을 줄여 마무리로 유도하며, force(130k)는 세션을 자동 백업해 압축으로 넘깁니다. 세션을 하루 종일 돌려도 컨텍스트가 자기 히스토리에 익사하는 일은 없습니다. 위임된 각 서브에이전트는 독립 하드 한도를 가지며, 넘으면 HANDOFF 요약을 남기고 퇴장합니다.
14
+
15
+ **2. 6 레인 디스패치.** economy / mechanical / main / hard / vision / review 여섯 개의 인지 레인: 설정 페이지에서 후보 모델을 고르고, 최강 우선으로 정렬하며(S/A/B/C 티어 앵커는 선택), 라우트마다 사고 강도를 고정할 수 있습니다 — 드롭다운 레벨 목록은 각 모델이 *실제로* 지원하는 것에서 직접 나오는 것이지 일반적인 세 단계가 아닙니다. `[SWITCHMAN:POOLS]` 추천 표가 프롬프트마다 기본 모델에 전달되어 모델이 이를 보고 일을 배정합니다. `enforce` 모드에서는 풀 밖 모델을 즉시 거부합니다.
16
+
17
+ **3. 언어 기본 설정.** 답변·코드 주석·문서 세 종류에 각각 드롭다운 하나. 미설정이면 첫 사용 때 한 번 물어보고 영구 기억하며, 이후 모든 세션이 자동으로 따릅니다.
18
+
19
+ **4. 기본 위임 교리.** DSH 출하 시 탑재된 보수적 팀 정책("요청받을 때만 팀원 생성")을 대체합니다: 자잘한 일은 직접 손을 쓰고(읽기 <200줄, 변경 <50줄), 큰 작업은 기본적으로 위임합니다. 변경은 반드시 검증합니다 — 20줄 초과는 tester 에게, 300줄 초과 또는 핵심 로직을 건드린 변경은 reviewer 에게. "팀 쓰지 마"라고 한마디만 하면 즉시 물러납니다.
20
+
21
+ 모델이 하나뿐인가요? 그래도 가치가 있습니다 — 수위 제어와 교리는 모델 개수를 전혀 신경 쓰지 않습니다.
22
+
23
+ ## 번들 스킬
24
+
25
+ - **db-query** — MySQL / Redis 읽기 전용 검증: SQL을 돌려 레코드 대조, 캐시 키 / TTL 확인, 스토어 간 일관성 검사를 하고 쓰기는 일절 거부합니다. 최초 사용 시 초기화 필요(아래 참조).
26
+ - **git-commit-message** — 규범에 맞는 commit 문구 생성. 텍스트만 내보내고 git 은 절대 건드리지 않습니다.
27
+ - **requirement-docs** — 요구사항 분석 / PRD / 설계 문서의 통일 규범. 산출물은 `docs/requirements-and-design/` 에 아카이브합니다.
28
+
29
+ ## 빠른 시작
30
+
31
+ 1. **설치** — 아무 세션에서나 에이전트에게 실행시키거나, 웹 플러그인 관리 페이지에서:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ 또는 로컬 체크아웃에서(link 방식. 업데이트 반영 후 `remove_bundle` + `install_bundle` 재설치):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **DSH 재시작** — 앱을 완전히 종료한 뒤 다시 엽니다(페이지 새로고침으로는 부족). 클라이언트 모듈 테이블이 이 bundle 을 인식하게 됩니다.
44
+
45
+ 3. **설정 페이지 열기** — 설정 → dsh-switchman. 첫 화면은 언어 기본 설정입니다: 답변 / 주석 / 문서에 대응하는 드롭다운 3개가 있고 각 항목 아래에 "현재: …" 상태 줄이 붙습니다. 설정하지 않아도 괜찮습니다 — 첫 사용 때 한 번 물어보고 기억합니다.
46
+
47
+ ![설정 페이지와 언어 기본 설정](docs/assets/conf-demo1.png)
48
+
49
+ 4. **여섯 개 풀 채우기** — 각 풀 카드는 공급자별로 묶인 후보 모델을 보여줍니다. 원하는 것에 체크하세요. **수동 순서**에 체크하면 카드가 ↑ ↓ × 컨트롤이 달린 번호식 우선순위 목록으로 바뀝니다. 선택한 각 라우트 옆의 사고 강도 드롭다운 기본값은 "레인 따르기"이며, 고정하면 해당 모델이 실제 지원하는 레벨(Low / High / Max…)을 고를 수 있습니다. 요약 줄이 진행 상황을 실시간으로 반영합니다: "풀 설정 6/6 · 랭킹 3개 · 모드 조언".
50
+
51
+ ![디스패치 풀 설정](docs/assets/conf-demo2.png)
52
+
53
+ 5. **능력 랭킹과 수위** — 랭킹 표 번호는 곧 능력 순(최강이 먼저)이며 S/A/B/C 티어를 앵커할 수 있습니다. 실행 모드는 세 가지: `off` / 조언 / enforce(enforce = 풀 밖 모델 즉시 거부). 아래 수위 섹션은 token 사용량에 따라 단계적으로 동작을 조입니다: 세 단계 임계값, 1회당 읽기 예산, hard 모드 동작(제한 허용 / 차단), 자동 인계 토글, 서브에이전트 독립 한도. 맨 아래 한 줄 슬래시 명령: `/ctx-pause` 개입 일시 중지 · `/ctx-resume` 재개 · `/ctx-handover` 즉시 백업 후 인계.
54
+
55
+ ![능력 랭킹과 컨텍스트 수위](docs/assets/conf-demo3.png)
56
+
57
+ 6. **검증** — 모든 세션 헤더의 프리셋 chip 옆에 ⚡ 배지가 나타납니다. 모델에게 "시스템 프롬프트 마지막 섹션에 뭐라고 쓰여 있나요?"라고 물어보세요. dsh-switchman 교리를 언급해야 합니다.
58
+
59
+ **db-query 최초 사용 초기화**(스크립트 의존성은 스킬 디렉터리 안에 설치됩니다):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## 동작 방식
66
+
67
+ - Host 쪽(`index.js` + `host/`)은 동적 시스템 프롬프트 섹션 3개, 읽기 예산과 enforce 이중 게이트, 답변 자동 캡처, 슬래시 명령 3개를 주입합니다. 모든 설정은 volatile 필드라서 저장 후 다음 프롬프트 조립부터 적용되며 재시작이 필요 없습니다.
68
+ - Client 쪽(`client.js`)은 프리셋 chip 옆의 ⚡ 배지와 설정 페이지를 렌더링합니다. 공식 settings-form 서비스를 통해 이루어집니다.
69
+ - `cordis.patch.yml` 은 출하 시 기본 프리셋의 플러그인 목록을 필드 단위로 그대로 복제하고 persona suffix 만 확장합니다. Agent Teams 도구 본체는 여전히 기본 탑재 `@deepseek-ai/dsh-experimental-agent-team-profile` 에서 옵니다.
70
+
71
+ ## 유지 보수
72
+
73
+ - DSH 업그레이드 후 출하 시 기본 프리셋 플러그인 목록이 바뀌었다면, 새 `presets/*.patch.yml` 에서 `cordis.patch.yml` 을 다시 동기화하고(doctrine suffix 유지), 재설치합니다.
74
+ - 프로토콜 줄(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)은 의도적으로 영어·바이트 안정을 유지합니다 — 현지화하지 마십시오.
75
+ - `npm pack --dry-run` 은 감사된 34 파일 / ~111 kB 형태를 유지해야 합니다(`docs/` 스크린샷은 패키지에 포함되지 않습니다).
76
+
77
+ ## License
78
+
79
+ MIT
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # dsh-switchman
2
2
 
3
- English | [简体中文](./README.zh.md)
3
+ **English** | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
4
 
5
5
  > **The switchman family**, same author, same orchestration: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (the OpenCode original) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (the ZCode port) · **dsh-switchman** (this repo, for DeepSeek Harness).
6
6
 
@@ -72,7 +72,7 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
72
72
 
73
73
  - After a DSH upgrade that changes shipped preset plugin lists, re-sync `cordis.patch.yml` from the new `presets/*.patch.yml` (keep the doctrine suffix), then reinstall.
74
74
  - Model-facing protocol lines (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) are deliberately English and byte-stable — do not localize them.
75
- - `npm pack --dry-run` must stay at the audited 34-file / ~111 kB shape (the `docs/` screenshots never ship).
75
+ - `npm pack --dry-run` must stay at the audited 43-file / ~138 kB shape (the `docs/` screenshots never ship).
76
76
 
77
77
  ## License
78
78
 
package/README.pt.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | **Português** | [Русский](./README.ru.md)
4
+
5
+ > **A família switchman**, mesmo autor, mesma orquestração: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (o original para OpenCode) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (o port para ZCode) · **dsh-switchman** (este repositório, para DeepSeek Harness).
6
+
7
+ ![dsh-switchman — o nível de água do contexto comanda o switchman, que desvia a rota](docs/assets/hero.svg)
8
+
9
+ > Contexto no medidor. Tarefas que se distribuem sozinhas.
10
+
11
+ Um plugin para o [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Depois de instalado, seu modelo primário para de fazer tudo sozinho e vira um dispatcher: mede o nível da água, escolhe a faixa, entrega a tarefa, confere o trabalho. Quatro coisas:
12
+
13
+ **1. Controle do nível de água do contexto.** A cada turno mede os tokens ao vivo da sessão. Soft (50k por padrão) recomenda delegar, hard (90k) aperta o orçamento de leitura por turno e empurra para encerrar, force (130k) faz backup da sessão e a entrega à compactação — automaticamente. Rode uma sessão o dia inteiro; seu contexto nunca se afoga na própria história. Cada subagent despachado carrega o próprio hard cap e sai com um resumo HANDOFF ao atingi-lo.
14
+
15
+ **2. Dispatch em seis faixas.** economy / mechanical / main / hard / vision / review — seis faixas cognitivas. Escolha os modelos candidatos por faixa na página de configurações, ordine-os do mais forte (ancoragem opcional em tiers S/A/B/C) e fixe um reasoning effort por rota — o dropdown lista os níveis que cada modelo *realmente* suporta, não três níveis genéricos. Uma tabela `[SWITCHMAN:POOLS]` vai junto com cada prompt para o modelo saber a quem chamar; o modo `enforce` rejeita na hora modelos fora do pool.
16
+
17
+ **3. Preferências de idioma.** Um dropdown para respostas, um para comentários de código e um para documentos escritos. Não definiu? Perguntam uma vez, fica guardado para sempre e toda sessão seguinte o segue.
18
+
19
+ **4. Doutrina delegate-by-default.** Substitui a política de equipe conservadora de fábrica do DSH ("crie teammates apenas quando pedido"): o trabalho miúdo fica nas suas mãos (<200 linhas lidas, <50 alteradas), o trabalho de verdade é delegado por padrão; toda alteração é verificada — acima de 20 linhas vai para um tester, acima de 300 linhas ou lógica central vai para um reviewer. Diga "não use equipes" e ela sai de cena na hora.
20
+
21
+ Só um modelo? Ainda vale a pena — o controle de nível de água e a doutrina não ligam para quantos modelos você tem.
22
+
23
+ ## Skills embutidas
24
+
25
+ - **db-query** — verificação somente leitura em MySQL/Redis: rode SQL para checar registros, chaves de cache / TTLs, consistência entre stores. Recusa qualquer escrita. Configuração única abaixo.
26
+ - **git-commit-message** — texto de commit dentro das convenções. Só texto; nunca toca no git.
27
+ - **requirement-docs** — uma especificação única para requisitos / PRD / documentos de design, arquivada em `docs/requirements-and-design/`.
28
+
29
+ ## Início rápido
30
+
31
+ 1. **Instale** — de qualquer sessão de agent, ou pelo gerenciador de plugins Web:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ ou de um checkout local (link; rode `remove_bundle` + `install_bundle` novamente depois de puxar as mudanças):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **Reinicie o DSH** — feche o app por completo e reabra (recarregar a página não basta) para que a tabela de módulos do cliente reconheça o bundle.
44
+
45
+ 3. **Abra a página de configurações** — Settings → dsh-switchman. A primeira tela é a preferência de idioma: um dropdown para respostas / comentários / documentos, cada um com uma linha ao vivo `current: …`. Pode pular — perguntam uma vez e fica guardado.
46
+
47
+ ![Página de configurações e preferência de idioma](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Preencha os seis pools** — cada card de pool lista os candidatos agrupados por provider; marque os que quiser. Marque **manual order** e o card vira uma lista de prioridade numerada com controles ↑ ↓ ×. O dropdown de effort ao lado de cada rota selecionada vem em *follow lane* por padrão; ao fixá-lo, ele lista os níveis que aquele modelo realmente suporta (Low / High / Max…). Uma linha de resumo acompanha o progresso ao vivo: “6/6 pools definidos · 3 ranqueados · modo advice”.
50
+
51
+ ![Pools de dispatch](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Ranking e watermark** — a ordem da tabela de ranking é a ordem de capacidade (mais forte primeiro), com tiers opcionais S/A/B/C; o modo de execução é `off` / advice / enforce (enforce = modelos fora do pool são rejeitados). Abaixo, a seção de watermark endurece o comportamento conforme o uso de tokens: três limiares, um orçamento de leitura por chamada, o comportamento do modo hard (cap / deny), uma chave de handover automático e um cap separado para subagents. A linha de baixo traz os comandos: `/ctx-pause` para parar de intervir · `/ctx-resume` para retomar · `/ctx-handover` para fazer backup e entregar agora.
54
+
55
+ ![Ranking e watermark de contexto](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Verifique** — o badge ⚡ aparece ao lado do chip de preset no cabeçalho de qualquer sessão; pergunte ao modelo “o que diz a última seção do seu system prompt?” — ele deve mencionar a doutrina dsh-switchman.
58
+
59
+ **Configuração única do db-query** (as dependências dos scripts vivem dentro do diretório da skill):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Como funciona
66
+
67
+ - A metade Host (`index.js` + `host/`) injeta três seções dinâmicas no system prompt, os gates de orçamento de leitura e enforce, a captura automática de respostas e três comandos slash. Todas as configurações são campos voláteis — mudanças salvas valem a partir da próxima montagem de prompt, sem reinício.
68
+ - A metade Client (`client.js`) renderiza o badge ⚡ ao lado do chip de preset e a página de configurações, pelos serviços oficiais de settings-form.
69
+ - `cordis.patch.yml` reafirma verbatim a lista de plugins de cada preset de fábrica e só estende o sufixo de persona; as ferramentas Agent Teams em si continuam vindo do `@deepseek-ai/dsh-experimental-agent-team-profile` de fábrica.
70
+
71
+ ## Manutenção
72
+
73
+ - Depois de um upgrade do DSH que mude as listas de plugins dos presets de fábrica, ressincronize `cordis.patch.yml` a partir dos novos `presets/*.patch.yml` (mantenha o sufixo da doutrina) e reinstale.
74
+ - As linhas de protocolo voltadas ao modelo (`[SWITCHMAN:LANG|POOLS|WATERMARK]`) são deliberadamente em inglês e estáveis a byte — não as localize.
75
+ - `npm pack --dry-run` deve continuar na forma auditada de 34 arquivos / ~111 kB (os screenshots de `docs/` nunca vão no pacote).
76
+
77
+ ## License
78
+
79
+ MIT
package/README.ru.md ADDED
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | **Русский**
4
+
5
+ > **Семейство switchman**, один автор, одна оркестрация: [opencode-switchman](https://github.com/mrzturn/opencode-switchman) (оригинал для OpenCode) · [zcode-switchman](https://github.com/mrzturn/zcode-switchman) (порт для ZCode) · **dsh-switchman** (этот репозиторий, для DeepSeek Harness).
6
+
7
+ ![dsh-switchman — уровень воды в контексте управляет стрелочником, и тот переводит маршрут](docs/assets/hero.svg)
8
+
9
+ > Контекст под счётчиком. Задачи распределяются сами.
10
+
11
+ Плагин для [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). После установки ваша основная модель перестаёт всё делать сама и становится диспетчером: измеряет уровень воды, выбирает полосу, раздаёт задачи, проверяет работу. Четыре вещи:
12
+
13
+ **1. Контроль уровня воды в контексте.** Каждый ход замеряет фактическое потребление токенов сессии. Soft (по умолчанию 50k) советует делегировать, hard (90k) урезает бюджет чтения на ход и подталкивает к завершению, force (130k) делает бэкап сессии и передаёт её компакции — автоматически. Держите сессию открытой хоть весь день; ваш контекст не утонет в собственной истории. Каждый отправленный субагент несёт собственный hard cap и по его достижении выходит с резюме HANDOFF.
14
+
15
+ **2. Диспетчеризация по шести полосам.** economy / mechanical / main / hard / vision / review — шесть когнитивных полос. Выберите модели-кандидаты по каждой полосе на странице настроек, расставьте от сильнейшей (опциональная привязка к tier-ам S/A/B/C) и зафиксируйте reasoning effort для каждого маршрута — в выпадающем списке те уровни, которые каждая модель *реально* поддерживает, а не три универсальных. Таблица `[SWITCHMAN:POOLS]` уходит с каждым промптом, чтобы модель знала, кого вызывать; режим `enforce` наотрез отвергает модели вне пула.
16
+
17
+ **3. Языковые предпочтения.** По одному выпадающему списку для ответов, комментариев в коде и создаваемых документов. Не задано? Спросят один раз, запомнят навсегда, и каждая следующая сессия будет этому следовать.
18
+
19
+ **4. Доктрина delegate-by-default.** Заменяет поставляемую в DSH консервативную политику команд («создавайте teammates только по прямой просьбе»): мелочёвка остаётся ручной работой (<200 прочитанных строк, <50 изменённых), настоящая работа по умолчанию делегируется; каждое изменение проверяется — больше 20 строк уходит тестировщику, больше 300 строк или ядро логики — ревьюеру. Скажите «не использовать команды» — и она мгновенно отойдёт в сторону.
20
+
21
+ Всего одна модель? Всё равно стоит — контролю уровня воды и доктрине всё равно, сколько у вас моделей.
22
+
23
+ ## Встроенные навыки
24
+
25
+ - **db-query** — верификация MySQL/Redis только на чтение: выполните SQL, чтобы проверить записи, ключи кэша / TTL, согласованность между хранилищами. Отклоняет любую запись. Разовая настройка — ниже.
26
+ - **git-commit-message** — текст коммита по конвенции. Только текст; git не трогает.
27
+ - **requirement-docs** — единая спецификация для требований / PRD / дизайн-документов, архивируется в `docs/requirements-and-design/`.
28
+
29
+ ## Быстрый старт
30
+
31
+ 1. **Установите** — из любой сессии агента или через веб-менеджер плагинов:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ или из локального checkout'а (в режиме link; после подтягивания изменений снова выполните `remove_bundle` + `install_bundle`):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **Перезапустите DSH** — полностью закройте приложение и откройте заново (перезагрузки страницы недостаточно), чтобы таблица клиентских модулей подхватила бандл.
44
+
45
+ 3. **Откройте страницу настроек** — Settings → dsh-switchman. Первый экран — языковые предпочтения: по выпадающему списку на ответы / комментарии / документы, у каждого живая строка `current: …`. Можете пропустить — спросят один раз и запомнят.
46
+
47
+ ![Страница настроек и языковые предпочтения](docs/assets/conf-demo1.png)
48
+
49
+ 4. **Заполните шесть пулов** — каждая карточка пула перечисляет кандидатов, сгруппированных по провайдеру; отметьте нужные. Отметьте **manual order**, и карточка станет нумерованным списком приоритетов с кнопками ↑ ↓ ×. Выпадающий список effort рядом с каждым выбранным маршрутом по умолчанию стоит на *follow lane*; если его зафиксировать, он покажет уровни, которые эта модель реально поддерживает (Low / High / Max…). Строка сводки в реальном времени показывает прогресс: «6/6 пулов задано · 3 в рейтинге · режим advice».
50
+
51
+ ![Пулы диспетчеризации](docs/assets/conf-demo2.png)
52
+
53
+ 5. **Рейтинг и watermark** — порядок в таблице рейтинга — это порядок по возможностям (сильнейшие первыми), с опциональными tier-ами S/A/B/C; режим исполнения — `off` / advice / enforce (enforce = модели вне пула отклоняются). Ниже секция watermark ужесточает поведение по мере расхода токенов: три порога, бюджет чтения на вызов, поведение жёсткого режима (cap / deny), переключатель автоматической передачи управления и отдельный лимит для субагентов. Нижняя строка несёт команды: `/ctx-pause` — прекратить вмешательство · `/ctx-resume` — возобновить · `/ctx-handover` — сделать бэкап и передать управление прямо сейчас.
54
+
55
+ ![Рейтинг и watermark контекста](docs/assets/conf-demo3.png)
56
+
57
+ 6. **Проверьте** — значок ⚡ появляется рядом с чипом пресета в шапке любой сессии; спросите у модели «что написано в последней секции твоего системного промпта?» — она должна упомянуть доктрину dsh-switchman.
58
+
59
+ **Разовая настройка db-query** (зависимости скриптов живут внутри каталога навыка):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## Как это работает
66
+
67
+ - Host-половина (`index.js` + `host/`) внедряет три динамические секции системного промпта, шлюзы бюджета чтения и enforce, автоматический захват ответов и три слэш-команды. Все настройки — volatile-поля: сохранённые изменения вступают в силу при следующей сборке промпта, без перезапуска.
68
+ - Client-половина (`client.js`) отрисовывает значок ⚡ рядом с чипом пресета и страницу настроек — через официальные сервисы settings-form.
69
+ - `cordis.patch.yml` дословно повторяет список плагинов каждого штатного пресета и расширяет только суффикс персоны; сами инструменты Agent Teams по-прежнему приходят из штатного `@deepseek-ai/dsh-experimental-agent-team-profile`.
70
+
71
+ ## Обслуживание
72
+
73
+ - После обновления DSH, меняющего списки плагинов штатных пресетов, пересинхронизируйте `cordis.patch.yml` из новых `presets/*.patch.yml` (сохраните суффикс доктрины) и переустановите.
74
+ - Строки протокола, адресованные модели (`[SWITCHMAN:LANG|POOLS|WATERMARK]`), намеренно на английском и стабильны побайтово — не локализуйте их.
75
+ - `npm pack --dry-run` должен оставаться в аудитированной форме: 34 файла / ~111 kB (скриншоты из `docs/` в пакет никогда не попадают).
76
+
77
+ ## License
78
+
79
+ MIT
@@ -0,0 +1,79 @@
1
+ # dsh-switchman
2
+
3
+ [English](./README.md) | [简体中文](./README.zh.md) | **繁體中文** | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
+
5
+ > **switchman 家族**,同一作者、同一套調度理念:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植)· **dsh-switchman**(本倉庫,DeepSeek Harness 版)。
6
+
7
+ ![dsh-switchman — 上下文水位驅動轉轍手,把任務丟進對的泳道](docs/assets/hero.svg)
8
+
9
+ > 上下文裝上水錶,任務自己找車道。
10
+
11
+ 一個 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)外掛。裝上之後,主模型從「什麼都自己幹」變成調度員:量水位、選泳道、派任務、盯驗收。它做四件事:
12
+
13
+ **1. 上下文水位控制。** 每輪即時計量會話 token。soft 檔(預設 50k)建議委派,hard 檔(90k)收緊每輪讀取預算並引導收尾,force 檔(130k)自動備份會話並移交壓縮。會話跑一整天,上下文也不會淹沒在自己的歷史裡。派出去的每個子代理帶獨立硬頂,超了就寫完 HANDOFF 摘要退場。
14
+
15
+ **2. 六泳道派發。** economy / mechanical / main / hard / vision / review 六條認知泳道:設定頁裡勾選候選模型、按最強優先排序(可錨 S/A/B/C 檔),每條路線還能單獨釘死思考強度——下拉檔位直接來自該模型真實支援的清單,不是通用的三檔。`[SWITCHMAN:POOLS]` 推薦表隨提示詞下發給主模型照著派活;`enforce` 模式下池外模型直接拒絕。
16
+
17
+ **3. 語言偏好。** 回覆、程式碼註解、文件三種語言各一個下拉選單。未設定時首次使用問一次、永久記住,之後每個會話自動遵守。
18
+
19
+ **4. 預設委派規程。** 取代 DSH 出廠的保守團隊政策(「僅當使用者明確要求才建團隊」):小事親做(讀 <200 行、改 <50 行),大活預設委派;改完必驗——超過 20 行交 tester,超過 300 行或動了核心邏輯交 reviewer。你說「不要用團隊」,它立刻讓位。
20
+
21
+ 只有一個模型?依然值得——水位控制與這套規程根本不在乎你有幾個模型。
22
+
23
+ ## 隨附技能
24
+
25
+ - **db-query** — MySQL / Redis 唯讀核驗:跑 SQL 核對資料、查快取鍵 / TTL、跨庫一致性檢查,拒絕一切寫入。首次使用需初始化(見下)。
26
+ - **git-commit-message** — 產生符合規範的 commit 文案,只出文字,從不替你 git。
27
+ - **requirement-docs** — 需求分析 / PRD / 設計文件的統一規範,產出歸檔到 `docs/requirements-and-design/`。
28
+
29
+ ## 快速上手
30
+
31
+ 1. **安裝**——任意會話裡讓 agent 執行,或在 Web 外掛管理頁:
32
+
33
+ ```
34
+ plugin_manager: install_bundle target=dsh-switchman
35
+ ```
36
+
37
+ 或從本地檢出安裝(link 方式;更新後需 `remove_bundle` + `install_bundle` 重裝):
38
+
39
+ ```
40
+ plugin_manager: install_bundle target=/path/to/dsh-switchman
41
+ ```
42
+
43
+ 2. **重啟 DSH**——完全結束應用程式再重新開啟(重新整理頁面不算),用戶端模組表才會載入本 bundle。
44
+
45
+ 3. **打開設定頁**——設定 → dsh-switchman。第一屏是語言偏好:三個下拉選單對應回覆 / 註解 / 文件,每項下方有「目前:…」狀態行;不設定也沒關係,首次使用會問一次並記住。
46
+
47
+ ![設定頁與語言偏好](docs/assets/conf-demo1.png)
48
+
49
+ 4. **配六個池**——每張池卡片按供應商分組勾選候選模型;勾上「手動序」後卡片變成編號優先序列表,用 ↑ ↓ × 調順序。每條選中路線旁的思考強度下拉預設「跟隨泳道」,也可以釘死成該模型真實支援的檔位(Low / High / Max…)。摘要行即時反映進度:「已設定 6/6 池 · 排序 3 項 · 模式 建議」。
50
+
51
+ ![派發池設定](docs/assets/conf-demo2.png)
52
+
53
+ 5. **能力排序與水位**——排序表序號即能力序(最強在前),可錨 S/A/B/C 檔;執行模式三態:`off` / 建議 / 強制(強制 = 池外模型直接拒絕)。下方水位區按 token 用量分級收緊行為:三檔閾值、單次讀取預算、硬檔行為(限量放行 / 攔截)、自動交接開關、子代理獨立上限。底部一行斜線命令:`/ctx-pause` 暫停干預 · `/ctx-resume` 恢復 · `/ctx-handover` 立即備份交接。
54
+
55
+ ![能力排序與上下文水位](docs/assets/conf-demo3.png)
56
+
57
+ 6. **驗證**——任意會話頂部預設 chip 旁出現 ⚡ 徽章;問模型「你的系統提示詞最後一節寫了什麼」,應提到 dsh-switchman 規程。
58
+
59
+ **db-query 首次使用初始化**(腳本依賴裝在技能目錄內):
60
+
61
+ ```bash
62
+ bash <install-dir>/skills/db-query/scripts/setup.sh
63
+ ```
64
+
65
+ ## 運作原理
66
+
67
+ - Host 端(`index.js` + `host/`)注入三個動態系統提示詞段、讀取預算與 enforce 雙閘、答案自動擷取、三個斜線命令。全部設定為 volatile 欄位,儲存後下一輪提示詞組裝即生效,無需重啟。
68
+ - Client 端(`client.js`)渲染預設 chip 旁的 ⚡ 徽章與設定頁,走官方 settings-form 服務。
69
+ - `cordis.patch.yml` 逐欄位復刻出廠預設外掛清單,僅擴充 persona suffix;Agent Teams 工具本體仍來自出廠的 `@deepseek-ai/dsh-experimental-agent-team-profile`。
70
+
71
+ ## 維護注意
72
+
73
+ - DSH 升級後若出廠預設外掛清單有變,從新的 `presets/*.patch.yml` 重新同步 `cordis.patch.yml`(保留 doctrine suffix),然後重裝。
74
+ - 協定行(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)刻意保持英文且位元組穩定——不要在地化。
75
+ - `npm pack --dry-run` 應保持審計過的 34 個檔案 / ~111 kB 形態(`docs/` 截圖不會進包)。
76
+
77
+ ## License
78
+
79
+ MIT
package/README.zh.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # dsh-switchman
2
2
 
3
- [English](./README.md) | 简体中文
3
+ [English](./README.md) | **简体中文** | [繁體中文](./README.zh-TW.md) | [日本語](./README.ja.md) | [한국어](./README.ko.md) | [Español](./README.es.md) | [Français](./README.fr.md) | [Deutsch](./README.de.md) | [Italiano](./README.it.md) | [Português](./README.pt.md) | [Русский](./README.ru.md)
4
4
 
5
5
  > **switchman 家族**,同一作者、同一套调度理念:[opencode-switchman](https://github.com/mrzturn/opencode-switchman)(OpenCode 原版)· [zcode-switchman](https://github.com/mrzturn/zcode-switchman)(ZCode 移植)· **dsh-switchman**(本仓库,DeepSeek Harness 版)。
6
6
 
@@ -72,7 +72,7 @@ bash <安装目录>/skills/db-query/scripts/setup.sh
72
72
 
73
73
  - DSH 升级后若出厂预设插件列表有变,从新的 `presets/*.patch.yml` 重新同步 `cordis.patch.yml`(保留 doctrine suffix),然后重装。
74
74
  - 协议行(`[SWITCHMAN:LANG|POOLS|WATERMARK]`)刻意保持英文且字节稳定——不要本地化。
75
- - `npm pack --dry-run` 应保持审计过的 34 文件 / ~111 kB 形态(`docs/` 截图不进包)。
75
+ - `npm pack --dry-run` 应保持审计过的 43 文件 / ~138 kB 形态(`docs/` 截图不进包)。
76
76
 
77
77
  ## License
78
78
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-switchman",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "Autonomous Agent Teams doctrine for the four shipped DeepSeek Harness presets, plus language preferences, dispatch pools with model ranking, and context watermark control.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -66,5 +66,8 @@
66
66
  "@deepseek-ai/dsh-client-ui-settings"
67
67
  ]
68
68
  }
69
+ },
70
+ "devDependencies": {
71
+ "yaml": "^2.9.1"
69
72
  }
70
73
  }