dsh-switchman 1.3.1 → 1.5.0
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 +61 -29
- package/README.es.md +61 -29
- package/README.fr.md +60 -28
- package/README.it.md +53 -21
- package/README.ja.md +58 -26
- package/README.ko.md +54 -22
- package/README.md +57 -25
- package/README.pt.md +54 -22
- package/README.ru.md +61 -29
- package/README.zh-TW.md +57 -25
- package/README.zh.md +54 -22
- package/client.js +900 -17
- package/cordis.patch.yml +24 -8
- package/host/config.js +23 -0
- package/host/context-watch.js +267 -68
- package/host/dispatch.js +107 -6
- package/host/handover-state.js +38 -0
- package/host/lang.js +211 -36
- package/host/lib/dsh-home.js +18 -0
- package/host/routes.js +138 -7
- package/host/subagent-model.js +147 -0
- package/host/subagents.js +144 -0
- package/host/teams.js +430 -0
- package/host/ui-locale.js +35 -0
- package/host/vision.js +367 -0
- package/index.js +40 -8
- package/package.json +1 -1
package/README.de.md
CHANGED
|
@@ -2,61 +2,92 @@
|
|
|
2
2
|
|
|
3
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
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,
|
|
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, die DeepSeek-Harness-Edition).
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
|
-
> Kontext
|
|
9
|
+
> Dem Kontext einen Wasserzähler geben — jede Aufgabe findet von selbst ihre Spur.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Warum Sie es brauchen
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Wer lange mit DSH arbeitet, stößt früher oder später auf zwei Probleme:
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
1. **Die Sitzung wird mit der Zeit immer schwerer.** Der Verlauf bläht den Kontext auf Hunderttausende Tokens auf; das Modell beginnt zu vergessen, wird langsamer, wird teurer — bis nur noch ein manuelles /compact hilft, und jede Komprimierung schluckt zwangsläufig Details.
|
|
16
|
+
2. **Ihr Hauptmodell macht alles selbst.** Eine Datei nachschlagen, einen Test laufen lassen, Daten abgleichen — es wühlt sich allein durch alles, langsam und teuer, obwohl der Großteil dieser Arbeit eigentlich zu einem deutlich billigeren Modell gehören würde.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
dsh-switchman ist ein Plugin für [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Nach der Installation hört das Hauptmodell auf, alles selbst zu erledigen, und arbeitet als Dispatcher: Wasserstand messen, Spur wählen, Aufgaben verteilen, Ergebnis prüfen. Es ist kein neues Modell — es ist eine auf DSH aufgesetzte Orchestrierungs-Doktrin plus eine Einstellungsseite. Konkret tut es sechs Dinge:
|
|
18
19
|
|
|
19
|
-
**
|
|
20
|
+
**1. Kontext-Wasserstand: Lange Sitzungen laufen nie über.** Jeder Turn zählt die Live-Tokens der Sitzung und hält sie gegen drei Wassermarken, die sich Stufe um Stufe verschärfen: 50k (soft, einstellbar) mahnt „Zeit zu delegieren“; 90k (hard) verengt das Lesebudget für Dateien pro Turn und drängt zum Abschluss; 130k (force) übernimmt automatisch — ein Fork der Sitzung wird archiviert, der Kontext komprimiert, die Fortsetzung geweckt, und die Aufgabe reißt nicht ab. Auch Hintergrund-Subagents, die in diesem Moment noch laufen, gehen nicht verloren: id, Aufgabenbeschreibung und Berichtspfad werden ins Übergabedokument geschrieben, und die fortgesetzte Sitzung weiß, wo sie die Berichte einsammelt, statt Arbeit doppelt zu verteilen. Jeder losgeschickte Subagent trägt sein eigenes hartes Limit; ist es erreicht, schreibt er seine HANDOFF-Zusammenfassung und verabschiedet sich.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
**2. Sechs Dispatch-Pools: das passende Modell für jede Arbeit.** Ein Pool für Leichtes (economy, Kleinkram in Serie), ein mechanischer Pool (mechanical, Umschreibungen nach Vorlage), ein Hauptpool (main, der Coding-Alltag), ein Pool für Schweres (hard, anspruchsvolles Reasoning und große Refaktorierungen), ein Multimodal-Pool (vision, Bilder lesen) und ein Review-Pool (review, unabhängige Verifikation). Auf der Einstellungsseite haken Sie Kandidaten ab, sortieren sie nach Priorität (optional mit S/A/B/C-Tiers) und pinnen pro Route einen eigenen Reasoning-Effort — das Stufen-Dropdown listet, was dieses Modell tatsächlich unterstützt, nicht drei generische Stufen. Jeder Prompt des Hauptmodells trägt eine `[SWITCHMAN:POOLS]`-Empfehlungstabelle mit sich, und nach ihr wird dispatcht. Der Ausführungsmodus kennt drei Zustände: off / advice / enforce (enforce = Modelle außerhalb des Pools werden rundweg abgelehnt).
|
|
23
|
+
|
|
24
|
+
**3. Agent-Teams-Modus: vom Alleingang zum eigenen Team.** Standardmäßig aus — direkt nach der Installation bleibt es beim leichten subagent-Dispatch. Zwei unabhängige Schalter finden sich auf der Einstellungsseite:
|
|
25
|
+
|
|
26
|
+
- **Agent-Teams-Modus** — eingeschaltet injiziert er die Team-Doktrin (standardmäßig delegieren + gestufte Verifikation + Disziplin des gemeinsamen Task-Boards) und aktiviert automatisch DSHs Agent Teams: Das Hauptmodell darf feste Teammitglieder anwerben (`spawn_teammate`), Arbeit auf das gemeinsame Task-Board legen (`team_task_*`) und mit ihnen Nachrichten austauschen (`send_message`). Wann ein Team gebildet wird, folgt einer klaren Disziplin: parallelisierbare unabhängige Teilaufgaben, umfangreiche in sich geschlossene Pakete, ein bereits hoch stehender Hauptkontext, der Bedarf an Rollentrennung; einmalige Punktuntersuchungen laufen weiter über einen subagent. DSHs Werksstrategie lautet „kein Team, solange der Nutzer keins nennt“ — hier kippt sie zu „einsetzen, wenn es passt“. Den Schalter wieder auszuschalten hinterlässt keinerlei Rest der Team-Klauseln und nimmt laufenden Sitzungen die Team-Tools niemals weg.
|
|
27
|
+
- **Synchronisation der Subagent-Modell-Whitelist** — DSH führt eine Autorisierungs-Whitelist „Modelle, die Agents für Subagents wählen dürfen“: Eine im Pool ausgewählte, aber nie freigegebene Route bekommt beim namentlichen Dispatch eine Absage (im Team-Modus markieren die Pools-Tabelle und die Einstellungsseite solche Routen mit ⚠). Diesen Schalter einschalten, und die Vereinigung aller sechs Pools wird in einem Rutsch in die Whitelist geschrieben — keine doppelte Konfiguration mehr, switchman bleibt die alleinige Wahrheitsquelle, und auch der Fork-Dispatch-Pfad ist abgedeckt. Die Whitelist greift als Schnappschuss je neuer Sitzung; die Synchronisierung wirkt also nur auf Sitzungen, die danach geöffnet werden.
|
|
28
|
+
|
|
29
|
+
Die Sitzungskopfzeile hält Sie auf dem Laufenden: ein ⚡-Badge „autonomes Team“ und ein ◇-Chip mit dem Modell, das die Sitzung tatsächlich nutzt; läuft gerade eine automatische Übergabe, erscheint live der Hinweis „Übergabe läuft · Sitzung wird gesichert / Kontext wird komprimiert / Fortsetzung wird geweckt“.
|
|
30
|
+
|
|
31
|
+
**4. Spracheinstellungen: einmal gefragt, für immer gemerkt.** Je ein Dropdown für Antworten, Codekommentare und Dokumentation, mit globaler oder projektspezifischer Geltung (`.switchman/lang.json`). Ungesetzt lassen ist erlaubt — beim ersten echten Bedarf wird einmal gefragt, in der Sprache Ihrer DSH-Oberfläche, die Antwort bleibt gemerkt, und jede spätere Sitzung hält sich automatisch daran.
|
|
32
|
+
|
|
33
|
+
**5. Gestufte Verifikation: Jede Änderung wird geprüft.** Änderungen über 20 Zeilen gehen an einen Tester; über 300 Zeilen oder sobald Kern- / Sicherheits- / Datenkonsistenz-Logik berührt wird, zusätzlich an einen unabhängigen Reviewer. Das Reviewer-Modell wird so gewählt, dass es das Modell „des Agents, der den Diff geschrieben hat“ meidet — so weit die Pools es zulassen; wenn wirklich nicht, erklärt die Schlussfolgerung DOWNGRADED. Einmal „nutze keine Teams“ gesagt, und er fällt sofort ins Solo zurück.
|
|
34
|
+
|
|
35
|
+
**6. `/vision`: Auch reine Textmodelle kommen mit Bildern zurecht.** Kann das Hauptmodell keine Bilder lesen, weist DSH Bildnachrichten schon am Eingang zurück. Bild anhängen, `/vision wo liegt der Fehler in diesem Bild` eingeben — das Bild wird zu einem Dateipfad aufgelöst und einem Modell des Multimodal-Pools zum Lesen übergeben; die Erkenntnisse kehren in die aktuelle Sitzung zurück. Über dem Eingabefeld erscheint früh ein Hinweis: „Das aktuelle Modell kann keine Bilder lesen“; wird ein gewöhnlicher Bildversand abgewiesen, wird der Entwurf einmalig als `/vision` umgeschrieben und von selbst erneut gesendet — ohne neues Eintippen; ohne konfigurierten Multimodal-Pool lehnt der Befehl ab und nennt die Einrichtungsschritte.
|
|
36
|
+
|
|
37
|
+
Nur ein Modell? Die Installation lohnt sich trotzdem — Wasserstandskontrolle und gestufte Verifikation interessieren sich nicht dafür, wie viele Modelle Sie haben; lange Ein-Modell-Sitzungen profitieren genauso.
|
|
22
38
|
|
|
23
39
|
## Mitgelieferte Skills
|
|
24
40
|
|
|
25
|
-
- **db-query** — Read-only-Verifikation für MySQL/Redis:
|
|
26
|
-
- **git-commit-message** —
|
|
27
|
-
- **requirement-docs** — eine
|
|
41
|
+
- **db-query** — Read-only-Verifikation für MySQL / Redis: SQL ausführen, um Datensätze abzugleichen, Cache-Keys / TTLs zu prüfen und die Konsistenz über Stores hinweg zu kontrollieren; lehnt jede Schreiboperation ab. Einmalige Einrichtung unten.
|
|
42
|
+
- **git-commit-message** — erzeugt konventionskonformen Commit-Text. Nur Text; es führt niemals git für Sie aus.
|
|
43
|
+
- **requirement-docs** — eine einheitliche Spezifikation für Anforderungsanalyse / PRD / Design-Dokumente, archiviert unter `docs/requirements-and-design/`.
|
|
28
44
|
|
|
29
45
|
## Schnellstart
|
|
30
46
|
|
|
31
|
-
1. **Installieren** — aus einer beliebigen Agent-Sitzung oder über
|
|
47
|
+
1. **Installieren** — aus einer beliebigen Agent-Sitzung oder über die Web-Plugin-Verwaltung:
|
|
32
48
|
|
|
33
49
|
```
|
|
34
50
|
plugin_manager: install_bundle target=dsh-switchman
|
|
35
51
|
```
|
|
36
52
|
|
|
37
|
-
oder aus einem lokalen Checkout (verlinkt; nach
|
|
53
|
+
oder aus einem lokalen Checkout (verlinkt; nach Updates `remove_bundle` + `install_bundle` erneut ausführen):
|
|
38
54
|
|
|
39
55
|
```
|
|
40
56
|
plugin_manager: install_bundle target=/path/to/dsh-switchman
|
|
41
57
|
```
|
|
42
58
|
|
|
43
|
-
|
|
59
|
+
oder im Terminal über den `dsh`-Befehl — wählen Sie das Profil, das dazu passt, wie Sie DSH ausführen:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
dsh plugin --profile web add dsh-switchman # Web GUI
|
|
63
|
+
dsh plugin --profile desktop add dsh-switchman # Desktop-App
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
2. **DSH neu starten** — die App vollständig beenden und neu öffnen (Seite neu laden genügt nicht), damit die Client-Modul-Tabelle das Bundle erkennt.
|
|
67
|
+
|
|
68
|
+
3. **Spracheinstellungen** — Settings → dsh-switchman, oder das „Switchman-Control-Center“ in der Startseiten-Seitenleiste. Der erste Bildschirm wählt zuerst den Geltungsbereich: global (dieses Profil) oder pro Projekt (die `.switchman/lang.json` des jeweiligen Projekts); dann legen drei Dropdowns die Sprachen für Antworten / Kommentare / Dokumente fest, jedes mit einer „aktuell: …“-Statuszeile darunter. Überspringen ist erlaubt — beim ersten Gebrauch wird einmal gefragt und die Antwort gemerkt (gefragt wird in der Sprache Ihrer DSH-Oberfläche).
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
4. **Die Dispatch-Pools füllen** — jede Pool-Karte listet Kandidatenmodelle gruppiert nach Anbieter; haken Sie die gewünschten ab. „Manuelle Reihenfolge“ anhaken, und die Karte wird zu einer nummerierten Prioritätsliste, die sich mit ↑ ↓ × umsortieren lässt; neben jeder Route lässt sich zusätzlich ein Reasoning-Effort anpinnen (standardmäßig „der Spur folgen“; beim Anpinnen listet er die Stufen, die dieses Modell tatsächlich unterstützt). Eine Zusammenfassungszeile oben verfolgt den Fortschritt live, zum Beispiel „6/6 Pools konfiguriert · 2 gerankt · Modus advice“.
|
|
73
|
+
|
|
74
|
+

|
|
44
75
|
|
|
45
|
-
|
|
76
|
+
Multimodal-Pool und Review-Pool stehen darunter; weiter unten folgen das **Fähigkeits-Ranking** (die Vereinigung der in den sechs Pools gewählten Modelle — der Rang ist die Fähigkeitsreihenfolge, das stärkste zuerst, optional mit S/A/B/C-Tiers) und der **Ausführungsmodus** (advice / enforce).
|
|
46
77
|
|
|
47
|
-

|
|
48
79
|
|
|
49
|
-
|
|
80
|
+
5. **Agent-Teams** — beide Schalter sind standardmäßig aus; starten Sie mit reinem subagent-Dispatch. Soll das Modell selbst Teams anwerben, schalten Sie den „Agent-Teams-Modus“ ein; um dieselben Routen nicht doppelt freigeben zu müssen, schalten Sie die „Synchronisation der Subagent-Modell-Whitelist“ ein — eine Statuszeile „synchronisiert: N Routen + Zeitstempel“ unter dem Schalter bestätigt, was geschrieben wurde.
|
|
50
81
|
|
|
51
|
-

|
|
52
83
|
|
|
53
|
-
|
|
84
|
+
6. **Kontext-Wasserstand** — die drei Schwellenwerte (Standard 50000 / 90000 / 130000), das Lesebudget pro Aufruf, das Hard-Mode-Verhalten (gedrosselter Durchlass / Blockade), der Schalter für automatische Übergabe und das eigene Subagent-Limit liegen alle in diesem Bereich. Die unterste Zeile trägt die Befehle: `/ctx-pause` pausiert die Eingriffe · `/ctx-resume` setzt fort · `/ctx-handover` sichert und übergibt sofort (es lenkt die Sitzung an eine Leerlaufgrenze und wartet das Komprimierungs-Wiederholungsfenster ab — das Ergebnis kann einige Minuten dauern).
|
|
54
85
|
|
|
55
|
-

|
|
56
87
|
|
|
57
|
-
|
|
88
|
+
7. **Verifizieren** — in der Sitzungskopfzeile erscheint ein ⚡-Badge „autonomes Team“ (neben einem ◇, das das Modell der aktuellen Sitzung zeigt); oder fragen Sie das Modell einfach: „Wie lautet die Überschrift des letzten Abschnitts deines Systemprompts?“ — die Antwort sollte die dsh-switchman-Doktrin erwähnen.
|
|
58
89
|
|
|
59
|
-
**db-query – einmalige Einrichtung** (die Skript-Abhängigkeiten
|
|
90
|
+
**db-query – einmalige Einrichtung** (die Skript-Abhängigkeiten landen im Skill-Verzeichnis — Ihr Projekt bleibt sauber):
|
|
60
91
|
|
|
61
92
|
```bash
|
|
62
93
|
bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
@@ -64,15 +95,16 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
|
64
95
|
|
|
65
96
|
## Wie es funktioniert
|
|
66
97
|
|
|
67
|
-
- Die Host-Hälfte (`index.js` + `host/`) injiziert
|
|
68
|
-
- Die Client-Hälfte (`client.js`) rendert das ⚡-Badge
|
|
69
|
-
-
|
|
98
|
+
- Die Host-Hälfte (`index.js` + `host/`) injiziert die dynamischen Systemprompt-Abschnitte (Sprache / Spuren / Wasserstand / Teams), die doppelten Schranken aus Lesebudget und enforce sowie die vier Slash-Befehle (das ctx-Trio + `/vision`). Jede gespeicherte Einstellung greift bei der nächsten Prompt-Zusammenstellung — ohne Neustart.
|
|
99
|
+
- Die Client-Hälfte (`client.js`) rendert die Einstellungsseite, das ⚡-Badge und den ◇-Modell-Chip in der Sitzungskopfzeile sowie die dynamische Anzeige „Übergabe läuft“ — über die offiziellen settings-form-Dienste.
|
|
100
|
+
- Der Eintrag „Switchman-Control-Center“ in der Startseiten-Seitenleiste öffnet per Klick dieselbe Konfigurationsseite (Spracheinstellungen, Dispatch-Pools & Ranking, Wasserstand) als zentrales Panel; der ursprüngliche Einstieg in die Einstellungen bleibt erhalten.
|
|
101
|
+
- `cordis.patch.yml` übernimmt die Plugin-Liste der Werks-Presets vollständig und erweitert ausschließlich das persona suffix; die Agent-Teams-Tools selbst stammen aus dem Werks-Bundle und werden beim Einschalten des Team-Modus automatisch aktiviert.
|
|
70
102
|
|
|
71
103
|
## Wartung
|
|
72
104
|
|
|
73
|
-
-
|
|
74
|
-
- Die
|
|
75
|
-
- `npm pack --dry-run` muss in der
|
|
105
|
+
- Ändert ein DSH-Upgrade die Plugin-Listen der Werks-Presets, `cordis.patch.yml` aus den neuen `presets/*.patch.yml` neu synchronisieren (das doctrine suffix behalten) und anschließend neu installieren.
|
|
106
|
+
- Die Protokollzeilen (`[SWITCHMAN:LANG|POOLS|WATERMARK|TEAMS]`) bleiben bewusst englisch und byte-stabil — nicht lokalisieren.
|
|
107
|
+
- `npm pack --dry-run` muss in der auditierten Form von 50 Dateien / ~205 kB bleiben (die `docs/`-Screenshots wandern nicht ins Paket).
|
|
76
108
|
|
|
77
109
|
## Lizenz
|
|
78
110
|
|
package/README.es.md
CHANGED
|
@@ -2,61 +2,92 @@
|
|
|
2
2
|
|
|
3
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
4
|
|
|
5
|
-
> **La familia switchman**, mismo autor, misma
|
|
5
|
+
> **La familia switchman**, mismo autor, misma filosofía de despacho: [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, la versión para DeepSeek Harness).
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
|
-
> Contexto
|
|
9
|
+
> Contexto con medidor. Cada tarea encuentra su carril.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Por qué lo necesitas
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Trabajando con DSH, tarde o temprano te topas con dos cosas:
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
1. **La sesión pesa cada vez más.** El historial hincha el contexto hasta cientos de miles de tokens: el modelo empieza a olvidar, a ir lento y a encarecerse, y al final solo queda el /compact manual, que encima pierde detalles en cada compresión.
|
|
16
|
+
2. **El modelo principal lo hace todo él solo.** Leer un archivo, lanzar un test, cotejar datos: todo lo mastica él — lento y caro, siendo la mayor parte un trabajo que correspondería a un modelo barato.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
dsh-switchman es un plugin para [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Una vez instalado, el modelo principal deja de «hacerlo todo él solo» y pasa a ser el guardagujas: medir el nivel de agua, elegir el carril, repartir tareas y aceptar el trabajo. No es un modelo nuevo: es un reglamento de despacho enganchado a DSH, más una página de configuración. En concreto hace seis cosas:
|
|
18
19
|
|
|
19
|
-
**
|
|
20
|
+
**1. Nivel de agua del contexto: la sesión larga no se desborda.** Cada turno contabiliza los tokens de la sesión en vivo, y tres líneas de nivel aprietan por etapas: 50k (soft, ajustable) avisa «toca delegar»; 90k (hard) recorta el presupuesto de lectura de archivos por llamada y empuja al cierre; 130k (force) lanza la entrega automática — bifurca una copia de la sesión como respaldo, compacta el contexto y despierta la continuación, sin que el trabajo se corte. Los subagentes en segundo plano que sigan corriendo en el momento de la entrega tampoco se pierden: id, descripción de la tarea y ruta del informe quedan escritos en el documento de entrega, y la sesión que continúa sabe dónde recoger los informes en vez de volver a despachar el trabajo. Cada subagente despachado lleva su propio techo duro independiente: al alcanzarlo, termina con un resumen HANDOFF.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
**2. Seis pools de despacho: a cada trabajo, su modelo.** Pool ligero (economy, tareas pequeñas en lote), mecánico (mechanical, reescrituras con plantilla), principal (main, código del día a día), de alta dificultad (hard, razonamiento difícil y refactorizaciones a gran escala), multimodal (vision, leer imágenes) y de revisión (review, verificación independiente). En la página de ajustes marcas candidatos, ordenas prioridades (con anclaje opcional a las categorías S/A/B/C) y fijas un effort de razonamiento por ruta — el desplegable de categorías sale de los niveles que ese modelo soporta de verdad, no de tres genéricos. Cada turno, el prompt del modelo principal lleva consigo una tabla de recomendaciones `[SWITCHMAN:POOLS]`, y el trabajo se despacha siguiéndola. El modo de ejecución tiene tres estados: off / advice / enforce (enforce = los modelos fuera del pool se rechazan sin más).
|
|
23
|
+
|
|
24
|
+
**3. Modo Agent Teams: de ir por libre a llevar un equipo.** Desactivado por defecto: recién instalado solo hay despacho ligero por subagent. En la página de ajustes hay dos interruptores independientes:
|
|
25
|
+
|
|
26
|
+
- **Modo de equipo de agentes** — al activarlo se inyecta el reglamento de equipo (delegación por defecto + verificación por niveles + disciplina del tablero de tareas compartido) y se habilitan automáticamente los Agent Teams de DSH: el modelo principal puede reclutar compañeros residentes (`spawn_teammate`), asignarles trabajo en el tablero compartido (`team_task_*`) e intercambiar mensajes con ellos (`send_message`). Hay una disciplina clara sobre cuándo formar equipo: subtareas independientes que puedan ir en paralelo, trabajo abundante y autocontenido, nivel de agua del contexto principal ya alto o necesidad de separar roles; una investigación puntual de un solo uso sigue yendo por subagent. La política de fábrica de DSH es «no crees equipo si el usuario no lo pide»; aquí se invierte a «úsalo cuando toque». Si vuelves a apagar el interruptor, de las cláusulas de equipo no queda rastro, y las herramientas de equipo no se retiran de las sesiones en marcha.
|
|
27
|
+
- **Sincronizar la lista blanca de modelos de subagentes** — DSH tiene una lista blanca de autorización «permitir que los agentes elijan modelos para subagentes»: una ruta elegida en un pool pero no autorizada hace que el despacho explícito del modelo principal sea rechazado (en modo equipo, la tabla de recomendaciones y la página de ajustes marcan esas rutas con ⚠). Al encender este interruptor, la unión de los seis pools se escribe entera en esa lista blanca — sin configurar dos veces: switchman es la única fuente de verdad, y la vía de despacho por fork también queda cubierta. La lista blanca entra en vigor según la instantánea de «nueva sesión»: la sincronización solo afecta a las sesiones abiertas a partir de entonces.
|
|
28
|
+
|
|
29
|
+
La cabecera de la sesión da un feedback visual claro: la insignia ⚡ «equipo autónomo» y ◇ con el modelo real de la sesión actual; mientras hay una entrega automática en marcha, aparece un aviso en vivo: «entrega en curso · sesión de respaldo / compactación del contexto / continuación despertada».
|
|
30
|
+
|
|
31
|
+
**4. Preferencias de idioma: pregunta una vez, lo recuerda para siempre.** Un desplegable para cada una de las tres: respuestas, comentarios de código y documentos; el ámbito puede ser global o por proyecto (`.switchman/lang.json`). No hace falta configurarlo: la primera vez que se necesite pregunta una sola vez, en el idioma de la interfaz de tu DSH, y una vez recordado, cada sesión lo respeta automáticamente.
|
|
32
|
+
|
|
33
|
+
**5. Verificación por niveles: cambiado, comprobado.** Los cambios de más de 20 líneas pasan a verificación de un tester; los de más de 300 líneas, o que toquen lógica central / de seguridad / de consistencia de datos, pasan además a una revisión independiente de un reviewer. El modelo del reviewer se elige anclado al modelo del agente que escribió ese diff, esquivándolo cuando se puede; si en el pool no hay forma de esquivarlo, en la conclusión se declara DOWNGRADED. Dices «no uses equipos» y al instante vuelve al trabajo en solitario.
|
|
34
|
+
|
|
35
|
+
**6. `/vision`: hasta un modelo de solo texto puede con las imágenes.** Cuando el modelo principal no sabe leer imágenes, DSH rechaza en la puerta de entrada los mensajes con imágenes. Adjunta la imagen y escribe `/vision ¿qué está mal en esta imagen?` — la imagen se resuelve a una ruta de archivo y se entrega a un modelo del pool multimodal para leerla, y la conclusión vuelve a la sesión actual. Sobre el cuadro de entrada aparece por adelantado el aviso «el modelo actual no sabe leer imágenes»; si un envío directo de imagen es rechazado, se reescribe una vez de forma automática a `/vision` y se reenvía, sin rehacer nada a mano; con el pool multimodal sin configurar, el comando se niega y da indicaciones de configuración.
|
|
36
|
+
|
|
37
|
+
¿Solo tienes un modelo? Sigue mereciendo la instalación — el control del nivel de agua y la verificación por niveles no dependen de cuántos modelos tengas, y una sesión larga con un solo modelo se beneficia igual.
|
|
22
38
|
|
|
23
39
|
## Skills incluidas
|
|
24
40
|
|
|
25
|
-
- **db-query** — verificación de solo lectura
|
|
26
|
-
- **git-commit-message** — texto de commit conforme a la convención
|
|
27
|
-
- **requirement-docs** — una
|
|
41
|
+
- **db-query** — verificación de MySQL / Redis en solo lectura: ejecuta SQL para cotejar datos, consulta claves de caché / TTL y la consistencia entre almacenes; rechaza cualquier escritura. Requiere inicialización en el primer uso (ver abajo).
|
|
42
|
+
- **git-commit-message** — genera el texto de commit conforme a la convención; solo texto, nunca hace git por ti.
|
|
43
|
+
- **requirement-docs** — una especificación unificada para análisis de requisitos / PRD / documentos de diseño; los entregables se archivan en `docs/requirements-and-design/`.
|
|
28
44
|
|
|
29
45
|
## Inicio rápido
|
|
30
46
|
|
|
31
|
-
1. **Instalar** —
|
|
47
|
+
1. **Instalar** — pide a un agent que lo ejecute en cualquier sesión, o ve a la página web de gestión de plugins:
|
|
32
48
|
|
|
33
49
|
```
|
|
34
50
|
plugin_manager: install_bundle target=dsh-switchman
|
|
35
51
|
```
|
|
36
52
|
|
|
37
|
-
o desde un checkout local (
|
|
53
|
+
o instálalo desde un checkout local (en modo link; tras actualizar toca reinstalar con `remove_bundle` + `install_bundle`):
|
|
38
54
|
|
|
39
55
|
```
|
|
40
56
|
plugin_manager: install_bundle target=/path/to/dsh-switchman
|
|
41
57
|
```
|
|
42
58
|
|
|
43
|
-
|
|
59
|
+
o instálalo desde una terminal con el comando `dsh` — elige el perfil según cómo ejecutes DSH:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
dsh plugin --profile web add dsh-switchman # Web GUI
|
|
63
|
+
dsh plugin --profile desktop add dsh-switchman # app de escritorio
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
2. **Reiniciar DSH** — cierra la app por completo y vuelve a abrirla (recargar la página no cuenta) — solo así la tabla de módulos del cliente reconocerá el bundle.
|
|
67
|
+
|
|
68
|
+
3. **Preferencias de idioma** — Ajustes → dsh-switchman, o «Central de despacho Switchman» en la barra lateral de la página de inicio. En la primera pantalla se elige primero el ámbito: global (este profile) o por proyecto (el `.switchman/lang.json` de cada proyecto); después, tres desplegables fijan el idioma de respuestas / comentarios / documentos, cada uno con su línea de estado «actual: …». Puedes saltarlo: en el primer uso se pregunta una vez y se recuerda (se pregunta en el idioma de la interfaz de DSH).
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
4. **Configurar los pools de despacho** — en cada tarjeta de pool marcas los modelos candidatos agrupados por proveedor; marca «orden manual» y la tarjeta se convierte en una lista de prioridades numerada que se reordena con ↑ ↓ ×, y junto a cada ruta puedes fijar el effort de razonamiento (por defecto «seguir el carril»; al fijarlo, el desplegable lista los niveles que ese modelo soporta de verdad). La línea de resumen superior refleja el progreso en vivo, por ejemplo: «pools configurados: 6/6 · posiciones en el ranking: 2 · modo advice».
|
|
73
|
+
|
|
74
|
+

|
|
44
75
|
|
|
45
|
-
|
|
76
|
+
El pool multimodal y el de revisión están más abajo; después vienen el **orden por capacidad** (la unión de los modelos elegidos en los seis pools, donde el número es el puesto por capacidad, el más fuerte primero, con anclaje opcional a las categorías S/A/B/C) y el **modo de ejecución** (advice / enforce).
|
|
46
77
|
|
|
47
|
-

|
|
48
79
|
|
|
49
|
-
|
|
80
|
+
5. **Equipo de agentes** — ambos interruptores vienen apagados: arranca primero en modo subagent puro. Si quieres que reclute al equipo por su cuenta, enciende «modo de equipo de agentes»; si quieres ahorrarte la autorización duplicada en dos sitios, enciende «sincronizar la lista blanca de modelos de subagentes»: bajo el interruptor hay una línea de estado «N entradas sincronizadas + fecha» que confirma el resultado de la escritura.
|
|
50
81
|
|
|
51
|
-

|
|
52
83
|
|
|
53
|
-
|
|
84
|
+
6. **Nivel de agua del contexto** — tres umbrales (por defecto 50000 / 90000 / 130000), presupuesto de lectura por llamada, comportamiento del umbral duro (dejar pasar limitando / bloquear), interruptor de entrega automática y tope independiente para subagentes: todo en esta zona. Abajo, una línea de comandos: `/ctx-pause` pausa la intervención · `/ctx-resume` la reanuda · `/ctx-handover` respalda y entrega ahora mismo (conduce la sesión a la frontera de inactividad y espera la ventana de reintento de compactación; el resultado puede tardar unos minutos).
|
|
54
85
|
|
|
55
|
-

|
|
56
87
|
|
|
57
|
-
|
|
88
|
+
7. **Verificar** — en la cabecera de la sesión aparece la insignia ⚡ «equipo autónomo» (al lado, ◇ muestra el modelo de la sesión actual); o pregúntale directamente al modelo «¿cómo se titula la última sección de tu system prompt?» — debería mencionar el reglamento de dsh-switchman.
|
|
58
89
|
|
|
59
|
-
**
|
|
90
|
+
**Inicialización de db-query en el primer uso** (las dependencias del script se instalan dentro del directorio del skill y no ensucian el proyecto):
|
|
60
91
|
|
|
61
92
|
```bash
|
|
62
93
|
bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
@@ -64,15 +95,16 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
|
64
95
|
|
|
65
96
|
## Cómo funciona
|
|
66
97
|
|
|
67
|
-
- La mitad Host (`index.js` + `host/`) inyecta
|
|
68
|
-
- La mitad Client (`client.js`) pinta la insignia ⚡
|
|
69
|
-
-
|
|
98
|
+
- La mitad Host (`index.js` + `host/`) inyecta las secciones dinámicas del system prompt (idioma / carriles / nivel de agua / equipo), la doble compuerta de presupuesto de lectura y enforce, y cuatro comandos slash (el trío ctx + `/vision`). Todos los ajustes, una vez guardados, surten efecto en el siguiente ensamblado del prompt, sin reinicio.
|
|
99
|
+
- La mitad Client (`client.js`) pinta la página de ajustes, la insignia ⚡ y la marca de modelo ◇ en la cabecera de la sesión y el aviso dinámico de entrega en curso, apoyándose en los servicios oficiales settings-form.
|
|
100
|
+
- La entrada «Central de despacho Switchman» en la barra lateral de la página de inicio: un clic abre esta misma página de configuración (preferencias de idioma, pools y ranking, nivel de agua) como panel central; la entrada de ajustes original se conserva.
|
|
101
|
+
- `cordis.patch.yml` conserva íntegra la lista de plugins de los presets de fábrica y solo amplía el persona suffix; las herramientas de Agent Teams en sí vienen del bundle de fábrica y se habilitan automáticamente al encender el modo equipo.
|
|
70
102
|
|
|
71
103
|
## Mantenimiento
|
|
72
104
|
|
|
73
|
-
-
|
|
74
|
-
- Las líneas de protocolo
|
|
75
|
-
- `npm pack --dry-run` debe mantenerse en la forma auditada de
|
|
105
|
+
- Si tras una actualización de DSH cambia la lista de plugins de los presets de fábrica, resincroniza `cordis.patch.yml` desde los nuevos `presets/*.patch.yml` (conserva el doctrine suffix) y reinstala.
|
|
106
|
+
- Las líneas de protocolo (`[SWITCHMAN:LANG|POOLS|WATERMARK|TEAMS]`) están deliberadamente en inglés y son estables byte a byte — no las localices.
|
|
107
|
+
- `npm pack --dry-run` debe mantenerse en la forma auditada de 50 archivos / ~205 kB (las capturas de `docs/` no entran en el paquete).
|
|
76
108
|
|
|
77
109
|
## Licencia
|
|
78
110
|
|
package/README.fr.md
CHANGED
|
@@ -2,61 +2,92 @@
|
|
|
2
2
|
|
|
3
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
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,
|
|
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, l'édition DeepSeek Harness).
|
|
6
6
|
|
|
7
|
-

|
|
8
8
|
|
|
9
9
|
> Le contexte sur un compteur. Les tâches se dispatchent seules.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Pourquoi en avoir besoin
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
À force de travailler avec DSH, on finit par se heurter à deux problèmes :
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
1. **La session s'alourdit à mesure que la conversation s'étire.** L'historique gonfle le contexte à des centaines de milliers de tokens ; le modèle commence à oublier, à ralentir, à coûter cher — jusqu'au moment où seul un /compact manuel dépanne, et chaque compression avale inévitablement des détails.
|
|
16
|
+
2. **Le modèle principal fait tout lui-même.** Retrouver un fichier, lancer un test, recouper des données — il mâche tout cela seul, lentement et à grands frais, alors que l'essentiel de ce travail gagnerait à être confié à un modèle bien moins cher.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
dsh-switchman est un plugin pour [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (DSH). Une fois installé, le modèle principal passe de « tout faire lui-même » au rôle de répartiteur : mesurer le niveau d'eau, choisir le couloir, distribuer les tâches, contrôler le résultat. Ce n'est pas un nouveau modèle — c'est une doctrine d'orchestration accrochée à DSH, accompagnée d'une page de réglages. Concrètement, il fait six choses :
|
|
18
19
|
|
|
19
|
-
**
|
|
20
|
+
**1. Niveau d'eau du contexte : les longues sessions ne débordent jamais.** Chaque tour compte en direct les tokens de la session et les confronte à trois lignes d'eau qui durcissent par paliers : 50k (soft, réglable) rappelle qu'« il est temps de déléguer » ; 90k (hard) resserre le budget de lecture de fichiers par tour et pousse à conclure ; 130k (force) déclenche la remise automatique — un fork de la session est archivé, le contexte compacté, la continuation réveillée, et la tâche ne s'interrompt jamais. Les subagents d'arrière-plan encore en course à cet instant ne sont pas perdus pour autant : leurs id, descriptions de tâche et chemins de rapport sont consignés dans le document de remise, et la session relancée sait où récupérer les rapports au lieu de redéspatcher en double. Chaque subagent dispatché embarque son propre plafond strict ; une fois atteint, il écrit son résumé HANDOFF et se retire.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
**2. Six pools de dispatch : le bon modèle pour chaque tâche.** Un pool léger (economy, les petites tâches en série), un pool mécanique (mechanical, les réécritures sur gabarit), un pool principal (main, le code au quotidien), un pool haute difficulté (hard, raisonnement corsé et refontes à grande échelle), un pool multimodal (vision, lire les images) et un pool de relecture (review, vérification indépendante). Dans la page de réglages, vous cochez les candidats, les classez par priorité (avec tiers S/A/B/C en option) et épinglez un effort de raisonnement pour chaque route — le menu déroulant des niveaux reflète ce que ce modèle supporte réellement, pas trois niveaux génériques. Chaque prompt du modèle principal embarque une table de recommandations `[SWITCHMAN:POOLS]`, et le dispatch suit cette table. Le mode d'exécution a trois états : off / advice / enforce (enforce = tout modèle hors pool est refusé sans appel).
|
|
23
|
+
|
|
24
|
+
**3. Mode Agent Teams : passer du solo à la direction d'une équipe.** Désactivé par défaut — juste après l'installation, on reste sur le dispatch subagent léger. Deux interrupteurs indépendants dans la page de réglages :
|
|
25
|
+
|
|
26
|
+
- **Mode équipe d'agents** — l'activer injecte la doctrine d'équipe (délégation par défaut + vérification par paliers + discipline du tableau de tâches partagé) et active automatiquement les Agent Teams de DSH : le modèle principal peut recruter des coéquipiers permanents (`spawn_teammate`), confier du travail au tableau de tâches partagé (`team_task_*`) et échanger des messages avec eux (`send_message`). Le moment de constituer une équipe obéit à une discipline explicite : sous-tâches indépendantes parallélisables, gros lots autoportants, contexte principal déjà bien chargé, besoin de séparer les rôles ; les enquêtes ponctuelles restent du ressort du subagent. La politique d'usine de DSH dit « pas d'équipe tant que l'utilisateur n'en demande pas » — ici, elle devient « on en prend une dès que c'est utile ». Refermer l'interrupteur ne laisse aucun résidu des clauses d'équipe, et ne retire jamais les outils d'équipe aux sessions déjà en cours.
|
|
27
|
+
- **Synchronisation de la liste blanche des modèles de subagents** — DSH tient une liste d'autorisation « modèles qu'un agent peut choisir pour ses subagents » : une route cochée dans un pool mais jamais autorisée se voit refuser le dispatch quand le modèle principal la désigne nommément (en mode équipe, la table de pools et la page de réglages marquent ces routes d'un ⚠). Activez cet interrupteur et l'union des six pools est d'un coup écrite dans cette liste — fini la double configuration, switchman reste l'unique source de vérité, et le chemin de dispatch par fork est couvert lui aussi. La liste blanche s'applique par instantané à chaque nouvelle session : la synchronisation ne concerne que les sessions ouvertes ensuite.
|
|
28
|
+
|
|
29
|
+
L'en-tête de session donne un retour immédiat : un badge ⚡ « équipe autonome » et une puce ◇ indiquant le modèle réellement utilisé par la session ; pendant une remise automatique, une bannière en direct annonce « remise en cours · sauvegarde de la session / compactage du contexte / réveil de la continuation ».
|
|
30
|
+
|
|
31
|
+
**4. Préférences de langue : une question posée une fois, retenue pour toujours.** Un menu déroulant chacun pour les réponses, les commentaires de code et la documentation, avec un scope global ou par projet (`.switchman/lang.json`). Ne rien régler est permis — au premier besoin, on vous pose la question une fois dans la langue de votre interface DSH, la réponse est retenue, et chaque session suivante s'y conforme automatiquement.
|
|
32
|
+
|
|
33
|
+
**5. Vérification par paliers : chaque modification est contrôlée.** Au-delà de 20 lignes modifiées, passage au testeur ; au-delà de 300 lignes, ou dès que l'on touche à la logique cœur / sécurité / cohérence des données, en plus un relecteur indépendant. Le modèle du relecteur est choisi pour éviter celui de « l'agent qui a écrit le diff », autant que les pools le permettent ; quand c'est vraiment impossible, la conclusion le déclare DOWNGRADED. Dites « pas d'équipes » et il repasse aussitôt en solo.
|
|
34
|
+
|
|
35
|
+
**6. `/vision` : même un modèle purement textuel peut travailler avec des images.** Quand le modèle principal ne sait pas lire les images, DSH refuse les messages avec image dès l'entrée. Collez l'image, tapez `/vision où est l'erreur sur cette image`, et l'image est résolue en chemin de fichier puis confiée à un modèle du pool multimodal pour lecture ; les conclusions reviennent dans la session courante. Un avertissement apparaît tôt au-dessus du champ de saisie — « le modèle courant ne sait pas lire les images » ; si un envoi d'image ordinaire est refusé, le brouillon est réécrit une fois en `/vision` et renvoyé tout seul, sans rien retaper ; sans pool multimodal configuré, la commande refuse et donne les indications de configuration.
|
|
36
|
+
|
|
37
|
+
Un seul modèle ? Ça vaut quand même l'installation — le contrôle du niveau d'eau et la vérification par paliers se moquent du nombre de modèles, et une longue session mono-modèle en profite tout autant.
|
|
22
38
|
|
|
23
39
|
## Skills incluses
|
|
24
40
|
|
|
25
|
-
- **db-query** — vérification MySQL/Redis en lecture seule :
|
|
26
|
-
- **git-commit-message** — texte de commit conforme aux conventions.
|
|
27
|
-
- **requirement-docs** — une
|
|
41
|
+
- **db-query** — vérification MySQL / Redis en lecture seule : exécuter du SQL pour recouper les enregistrements, contrôler les clés de cache / TTL et auditer la cohérence entre stores ; refuse toute écriture. Configuration unique ci-dessous.
|
|
42
|
+
- **git-commit-message** — produit un texte de commit conforme aux conventions. Du texte seulement ; il ne lance jamais git à votre place.
|
|
43
|
+
- **requirement-docs** — une spécification unifiée pour l'analyse des besoins / PRD / documents de conception, avec archivage dans `docs/requirements-and-design/`.
|
|
28
44
|
|
|
29
45
|
## Démarrage rapide
|
|
30
46
|
|
|
31
|
-
1. **Installer** — depuis n'importe quelle session d'agent, ou depuis
|
|
47
|
+
1. **Installer** — depuis n'importe quelle session d'agent, ou depuis la page de gestion des plugins Web :
|
|
32
48
|
|
|
33
49
|
```
|
|
34
50
|
plugin_manager: install_bundle target=dsh-switchman
|
|
35
51
|
```
|
|
36
52
|
|
|
37
|
-
ou depuis un checkout local (
|
|
53
|
+
ou depuis un checkout local (en lien ; après mise à jour, refaire `remove_bundle` + `install_bundle`) :
|
|
38
54
|
|
|
39
55
|
```
|
|
40
56
|
plugin_manager: install_bundle target=/path/to/dsh-switchman
|
|
41
57
|
```
|
|
42
58
|
|
|
43
|
-
|
|
59
|
+
ou depuis un terminal avec la commande `dsh` — choisissez le profil correspondant à votre façon d'exécuter DSH :
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
dsh plugin --profile web add dsh-switchman # Web GUI
|
|
63
|
+
dsh plugin --profile desktop add dsh-switchman # appli desktop
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
2. **Redémarrer DSH** — quittez complètement l'application puis rouvrez-la (recharger la page ne suffit pas) pour que la table des modules client reconnaisse le bundle.
|
|
67
|
+
|
|
68
|
+
3. **Préférences de langue** — Settings → dsh-switchman, ou « Centre de contrôle Switchman » dans la barre latérale de la page d'accueil. Le premier écran choisit d'abord le scope : global (ce profil) ou par projet (le `.switchman/lang.json` de chaque projet) ; puis trois menus déroulants fixent la langue des réponses / commentaires / documents, chacun suivi d'une ligne d'état « actuel : … ». Passer l'étape ne coûte rien — on vous posera la question une fois au premier usage et la réponse sera retenue (la question est posée dans la langue de l'interface DSH).
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
4. **Remplir les pools de dispatch** — chaque carte de pool liste les modèles candidats groupés par fournisseur ; cochez ceux qu'il vous faut. Cochez « ordre manuel » et la carte devient une liste de priorités numérotée, à réordonner avec ↑ ↓ × ; à côté de chaque route, vous pouvez aussi épingler un effort de raisonnement (par défaut « suivre le couloir » ; l'épinglage liste les niveaux réellement supportés par ce modèle). Une ligne de résumé en haut suit la progression en direct, par exemple « 6/6 pools configurés · 2 classés · mode advice ».
|
|
73
|
+
|
|
74
|
+

|
|
44
75
|
|
|
45
|
-
|
|
76
|
+
Les pools multimodal et relecture se trouvent en dessous ; plus bas encore viennent le **classement des capacités** (l'union des modèles sélectionnés dans les six pools — le rang donne l'ordre de capacité, du plus fort au plus faible, avec tiers S/A/B/C en option) et le **mode d'exécution** (advice / enforce).
|
|
46
77
|
|
|
47
|
-

|
|
48
79
|
|
|
49
|
-
|
|
80
|
+
5. **Équipes d'agents** — les deux interrupteurs sont désactivés par défaut ; commencez avec le simple dispatch subagent. Pour laisser le modèle constituer lui-même des équipes, activez « mode équipe d'agents » ; pour éviter d'autoriser deux fois les mêmes routes, activez « synchronisation de la liste blanche des modèles de subagents » — une ligne d'état « synchronisé : N routes + horodatage » sous l'interrupteur confirme ce qui a été écrit.
|
|
50
81
|
|
|
51
|
-

|
|
52
83
|
|
|
53
|
-
|
|
84
|
+
6. **Niveau d'eau du contexte** — les trois seuils (par défaut 50000 / 90000 / 130000), le budget de lecture par appel, le comportement du mode hard (passage à débit limité / blocage), l'interrupteur de remise automatique et le plafond propre aux subagents tiennent tous dans cette section. La ligne du bas porte les commandes : `/ctx-pause` suspend les interventions · `/ctx-resume` reprend · `/ctx-handover` sauvegarde et remet immédiatement (il conduit la session jusqu'à une limite d'inactivité et attend la fenêtre de relance du compactage — le résultat peut prendre quelques minutes).
|
|
54
85
|
|
|
55
|
-

|
|
56
87
|
|
|
57
|
-
|
|
88
|
+
7. **Vérifier** — un badge ⚡ « équipe autonome » apparaît dans l'en-tête de session (avec à côté une puce ◇ montrant le modèle de la session en cours) ; ou demandez simplement au modèle « quel est le titre du dernier paragraphe de ton prompt système » — la réponse doit mentionner la doctrine dsh-switchman.
|
|
58
89
|
|
|
59
|
-
**Configuration unique de db-query** (les dépendances du script
|
|
90
|
+
**Configuration unique de db-query** (les dépendances du script s'installent dans le répertoire du skill — votre projet reste propre) :
|
|
60
91
|
|
|
61
92
|
```bash
|
|
62
93
|
bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
@@ -64,15 +95,16 @@ bash <install-dir>/skills/db-query/scripts/setup.sh
|
|
|
64
95
|
|
|
65
96
|
## Fonctionnement
|
|
66
97
|
|
|
67
|
-
- La partie Host (`index.js` + `host/`) injecte
|
|
68
|
-
- La partie Client (`client.js`) rend le badge ⚡
|
|
69
|
-
-
|
|
98
|
+
- La partie Host (`index.js` + `host/`) injecte les sections dynamiques du prompt système (langue / couloirs / niveau d'eau / équipes), les deux verrous budget de lecture et enforce, et les quatre commandes slash (le trio ctx + `/vision`). Tout réglage enregistré prend effet au prochain assemblage de prompt — sans redémarrage.
|
|
99
|
+
- La partie Client (`client.js`) rend la page de réglages, le badge ⚡ et la puce ◇ du modèle dans l'en-tête de session, ainsi que la bannière dynamique « remise en cours », via les services officiels de settings-form.
|
|
100
|
+
- L'entrée « Centre de contrôle Switchman » dans la barre latérale de la page d'accueil ouvre en un clic, sous forme de panneau central, la même page de configuration (préférences de langue, pools de dispatch et classement, niveau d'eau) ; l'entrée de réglages d'origine reste en place.
|
|
101
|
+
- `cordis.patch.yml` reprend intégralement la liste de plugins des presets d'usine et n'étend que le persona suffix ; les outils Agent Teams eux-mêmes viennent du bundle d'usine et s'activent automatiquement quand le mode équipe est allumé.
|
|
70
102
|
|
|
71
103
|
## Maintenance
|
|
72
104
|
|
|
73
|
-
-
|
|
74
|
-
- Les lignes de protocole
|
|
75
|
-
- `npm pack --dry-run` doit
|
|
105
|
+
- Si une mise à niveau de DSH change la liste de plugins des presets d'usine, resynchronisez `cordis.patch.yml` depuis les nouveaux `presets/*.patch.yml` (conservez le doctrine suffix), puis réinstallez.
|
|
106
|
+
- Les lignes de protocole (`[SWITCHMAN:LANG|POOLS|WATERMARK|TEAMS]`) restent volontairement en anglais et stables à l'octet — ne les localisez pas.
|
|
107
|
+
- `npm pack --dry-run` doit conserver la forme auditée de 50 fichiers / ~205 kB (les captures d'écran de `docs/` ne partent pas dans le paquet).
|
|
76
108
|
|
|
77
109
|
## Licence
|
|
78
110
|
|