@hecer/yoke 1.22.0 → 1.23.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.
Files changed (65) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +21 -0
  4. package/README.md +3 -1
  5. package/TODOS.md +6 -0
  6. package/canon/manifest.yaml +1 -1
  7. package/canon/skills/visual-verification/SKILL.md +25 -2
  8. package/canon/tools/codex-rtk-hook.mjs +6 -16
  9. package/dist/cli.js +79 -0
  10. package/dist/code-intelligence/adapters/mcp.js +1 -0
  11. package/dist/code-intelligence/coordinator.js +3 -1
  12. package/dist/code-intelligence/index.js +1 -0
  13. package/dist/code-intelligence/mcp-client.js +15 -4
  14. package/dist/code-intelligence/mcp-server.js +4 -1
  15. package/dist/code-intelligence/preflight.js +71 -0
  16. package/dist/loop/cache-isolation.js +36 -0
  17. package/dist/loop/loop.js +24 -4
  18. package/dist/loop/parallel-adapters.js +35 -2
  19. package/dist/loop/parallel-command.js +17 -2
  20. package/dist/loop/proof-retention.js +70 -0
  21. package/dist/loop/reporter.js +1 -1
  22. package/dist/loop/run-command.js +6 -1
  23. package/dist/loop/runner.js +1 -1
  24. package/dist/loop/worker.js +7 -0
  25. package/dist/observability/history.js +1 -0
  26. package/dist/observability/local-report.js +120 -0
  27. package/dist/observability/usage.js +2 -0
  28. package/dist/retrofit/config.js +3 -1
  29. package/dist/retrofit/gitignore.js +10 -0
  30. package/dist/retrofit/planners/codex.js +20 -20
  31. package/dist/routing/router.js +2 -0
  32. package/dist/smoke/command.js +87 -13
  33. package/dist/update/check.js +1 -1
  34. package/docs/DELIVERY-JOURNEYS.md +8 -1
  35. package/docs/RELEASE-VALIDATION-1.23.0.md +39 -0
  36. package/docs/benchmarks/2026-10-04-efficiency/ANALYSE.md +182 -0
  37. package/docs/benchmarks/2026-10-04-efficiency/compare-help.py +55 -0
  38. package/docs/benchmarks/2026-10-04-efficiency/manifest.json +125 -0
  39. package/docs/benchmarks/2026-10-04-efficiency/provenance-analysis.json +90 -0
  40. package/docs/benchmarks/2026-10-04-efficiency/provenance-design.json +90 -0
  41. package/docs/benchmarks/2026-10-04-efficiency/provenance-original-report.json +90 -0
  42. package/docs/benchmarks/2026-10-04-efficiency/raw/DEVELOPMENT_ANALYSIS.md +142 -0
  43. package/docs/benchmarks/2026-10-04-efficiency/raw/RESULT.md +21 -0
  44. package/docs/benchmarks/2026-10-04-efficiency/raw/commands.jsonl +26 -0
  45. package/docs/benchmarks/2026-10-04-efficiency/raw/environment.json +31 -0
  46. package/docs/benchmarks/2026-10-04-efficiency/raw/final-yoke-smoke.json +40 -0
  47. package/docs/benchmarks/2026-10-04-efficiency/raw/model-purpose-hints.csv +19 -0
  48. package/docs/benchmarks/2026-10-04-efficiency/raw/observations.jsonl +21 -0
  49. package/docs/benchmarks/2026-10-04-efficiency/raw/observer-command-phases.csv +12 -0
  50. package/docs/benchmarks/2026-10-04-efficiency/raw/roles.csv +5 -0
  51. package/docs/benchmarks/2026-10-04-efficiency/raw/shell-categories.csv +8 -0
  52. package/docs/benchmarks/2026-10-04-efficiency/raw/stories.csv +8 -0
  53. package/docs/benchmarks/2026-10-04-efficiency/raw/summary.json +469 -0
  54. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-history.jsonl +104 -0
  55. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-loop-1.log +58 -0
  56. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-loop-2.log +29 -0
  57. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-loop-3.log +5 -0
  58. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-loop-4.log +12 -0
  59. package/docs/benchmarks/2026-10-04-efficiency/raw/yoke-phases.csv +10 -0
  60. package/docs/benchmarks/2026-10-04-efficiency/regression-comparison.json +104 -0
  61. package/docs/superpowers/plans/2026-10-04-yoke-1.23-efficiency-prd.json +11 -0
  62. package/docs/superpowers/plans/2026-10-04-yoke-1.23-efficiency.md +83 -0
  63. package/docs/superpowers/specs/2026-10-04-yoke-1.23-efficiency-design.md +120 -0
  64. package/gemini-extension.json +1 -1
  65. package/package.json +1 -1
@@ -0,0 +1,120 @@
1
+ # Yoke 1.23.0: verlässliche Effizienzbasis
2
+
3
+ Datum: 2026-10-04. Status: **Vom Nutzer freigegeben („Ist freigegeben“); Änderungen für 1.23 lokal umgesetzt und unabhängig geprüft, offene Abnahmen im [Validierungsbericht](../../RELEASE-VALIDATION-1.23.0.md), kein veröffentlichter Release**. KI-erstellter Entwurf aus dem NEXUS-Benchmark. Ausgangspunkt: 1.22.0, Commit `e2e3c18`.
4
+
5
+ ## Ziel und Entscheidung
6
+
7
+ Messbar vermeidbare Einrichtungs-, Diagnose-, Integrations- und Nachweisfehler beheben. Yoke soll zuverlässig anzeigen, was läuft, warum etwas blockiert und welche Zeit-/Verbrauchsdaten vollständig oder unbekannt sind. Qualitäts-, HEAD-, Source- und geschützte Abnahmegates bleiben verbindlich.
8
+
9
+ Empfohlen ist ein Minor-Release 1.23.0, weil neben Fehlerkorrekturen additive Diagnose-/Telemetryverträge entstehen. Alternativen: 1.22.1 nur für unmittelbare P0-Fixes oder größerer Scheduler-/Routingumbau. Der kleine Hotfix reicht für korrekte Messung und Belege nicht aus; für den Umbau fehlt ein gemessener Schedulerengpass.
10
+
11
+ Nicht im Scope: neue Dashboardoberfläche, neue Modelle/Provider, Cloudtelemetrie, Installation anderer Plugins, abgeschwächte Tests, pauschale Sandboxaufweitung, garantierte Effizienzprozente. Native Subagenten nicht aus einem Yoke-Worker starten. Vor Änderungen vorhandene Recovery-, Evidence-, Kontext- und Telemetriemodule verwenden.
12
+
13
+ ## Architektur und Verträge
14
+
15
+ CLI-Erkundung bleibt read-only. Preflight trennt Konfiguration und operative Fähigkeiten. Bestehender Reporter bleibt die gemeinsame Statusbasis für CLI und Verbraucher. Infrastrukturfehler erhalten strukturierte Ursachen. Artefakte werden vor Cleanup sourcegebunden gesichert. Integration verwendet die bestehenden Locks und Fingerprints; ein verlorener Lock oder verändertes HEAD kann niemals als Erfolg erscheinen.
16
+
17
+ Telemetry wird lokal und additiv erweitert. Fehlende Guardian-/Approvaldaten sind unbekannt; eine nicht vom Provider zugängliche Session wird nicht mit Nullkosten ersetzt. Neue Felder unterscheiden gemessene Werte, abgeleitete Werte und Coverage. Keine zweite Orchestrierungsschicht.
18
+
19
+ ## Storyset und Definition of Done
20
+
21
+ Jede Story beginnt mit einem reproduzierbar fehlenden Verhaltenstest. Keine Produktionsänderung vor RED. Vorhandene Tests erweitern statt paralleler Testinfrastruktur. Nach GREEN fokussierte Prüfungen und notwendige Integrations-/geschützte Gates ausführen. Ausführlicher Schrittplan und PRD entstehen nach Freigabe.
22
+
23
+ ### E1 — Hilfe und Flagvalidierung ohne Seiteneffekte
24
+
25
+ Dateien: `src/cli.ts`, CLI-Tests unter `tests/`.
26
+
27
+ - `yoke setup --help`, `yoke retrofit --help` und entsprechende `-h`-Aufrufe geben Hilfe und Exit 0, ohne Konfigurations-, Datei-, Prozess- oder Registrymutation.
28
+ - Hilfe funktioniert auch mit angegebenem Zielpfad. Tests vergleichen vollständige Dateibauminhalte und relevante Dispatch-Spies vor/nach Aufruf.
29
+ - Unbekannte oder inkompatible Flags der verändernden Befehle werden vor dem Dispatch mit Exit != 0 und verständlicher Ursache abgewiesen. Bestehende dokumentierte Aufrufe bleiben kompatibel.
30
+ - Gemeinsame CLI-Hilfe wird wiederverwendet; kein neuer CLI-Frameworkumbau.
31
+
32
+ ### E2 — Laufzeitdateien und saubere Wiederaufnahme
33
+
34
+ Dateien: `src/retrofit/gitignore.ts`, `src/loop/git.ts` nur bei tatsächlich belegter Restlücke, `tests/retrofit/gitignore.test.ts`.
35
+
36
+ - Retrofit ignoriert `.yoke/supervision/` idempotent und erhält vorhandene Ignoreeinträge.
37
+ - Die bestehende Ausnahme in `RUNTIME_PATHS` wird berücksichtigt; keine breit gefasste Freigabe anderer `.yoke`-Dateien.
38
+ - Integrationstest: PRD-Assessment/Supervision allein verschmutzt einen frisch eingerichteten Checkout nicht; unversionierte Nutzerdatei blockiert weiterhin.
39
+ - Bereits getrackte Runtime-Dateien werden nicht ohne ausdrückliche Migration gelöscht oder heimlich aus dem Index genommen; Diagnose nennt sie.
40
+
41
+ ### E3 — Korrekter kompakter Parallelstatus
42
+
43
+ Dateien: `src/loop/run-command.ts`, `src/loop/reporter.ts`, `tests/loop/loop-status-render.test.ts`, `tests/loop/parallel-status-regressions.test.ts`.
44
+
45
+ - Kompakter Status enthält aktive Worker mit Story/Phase, aktive Integration und Wartezustand. Kein `undefined` und kein `story=none` als einzige Beschreibung bei aktiven Storyworkern.
46
+ - Serieller Status, kein Statusfile, leerer Workerpool, Integration ohne Implementierungsworker und abgeschlossener Loop sind getestet.
47
+ - Bisherige Top-Level-Felder bleiben kompatibel; Parallelfelder additiv und deterministisch sortiert. Kompakte Ausgabe bleibt einzeilig.
48
+ - Das Entfernen des Integratorstatus alleine meldet keinen Integrationsabschluss. Erfolg erst nach bestätigter Integration; Ablehnung hat eine eigene Meldung.
49
+
50
+ ### E4 — Browserdiagnosen mit tatsächlicher Ursache
51
+
52
+ Dateien: `src/smoke/command.ts`, `tests/smoke/command.test.ts`, `tests/smoke/journeys.test.ts`.
53
+
54
+ - Paketauflösung, fehlendes Browserbinary, eindeutige Sandbox-/Berechtigungsfehler und sonstige Launchfehler werden getrennt ausgewiesen.
55
+ - Unklare Fehler bleiben `launch-failed` mit redigierter Originalursache; keine spekulative Sandboxdiagnose aus beliebigem Fehlertext.
56
+ - Exit != 0 bei Startfehler, keine erfolgreichen Flowbelege und keine Aufforderung zur Paketinstallation bei bereits verfügbarem Paket.
57
+ - Erfolgreiche Starts, target-relative Paketauflösung, Windows-Pfade, Cleanup und Source-Fingerprintverhalten bleiben getestet.
58
+
59
+ ### E5 — Operativer Preflight für RTK und Code-Intelligence
60
+
61
+ Dateien: `src/retrofit/planners/codex.ts`, `canon/tools/codex-rtk-hook.mjs`, `src/code-intelligence/mcp-server.ts`, `src/code-intelligence/coordinator.ts`; vorhandene Audit-/Setup-/Backendmodule vor Erweiterung lokalisieren. Tests: `tests/retrofit/planners-codex.test.ts`, `tests/retrofit/codex-rtk-hook.test.ts`, `tests/code-intelligence/mcp-client.test.ts` plus relevante bestehende Backendtests.
62
+
63
+ - RTK-Integration ist idempotent; nur Yoke-eigene Legacyhooks migrieren, fremde Hooks erhalten. Bei fehlendem nativen Hook keine behauptete automatische Kompression.
64
+ - Echtes Codex-Toolschema und installierte RTK-Version prüfen; native Antworten verwenden. Shellrewrite nicht automatisch für verschachtelte Code-Mode-Aufrufe behaupten.
65
+ - Preflight zeigt konfigurierten Modus, auflösbaren Workspace-Identifier und tatsächliche Backendabdeckung getrennt. Fehlende Backends führen zu explizit degradiertem Status und dokumentiertem Fallback.
66
+ - Konfigurierter Workspace-Identifier ist entweder der tatsächlich akzeptierte Identifier oder wird mit eindeutiger Migrationsdiagnose abgewiesen; keine still ignorierte Einstellung.
67
+ - Für unbekannte Workspace-IDs keine Cross-Workspace-Abfrage. Read-only Preflight verändert das Projekt nicht.
68
+
69
+ ### E6 — Kandidaten, Proofs und Abschluss sauber erhalten
70
+
71
+ Dateien: vorhandene Candidate-/Integration-/Evidence-/Cleanupmodule unter `src/loop/`, `src/smoke/command.ts`; vorhandene Recovery-/Completiontests erweitern.
72
+
73
+ - Erforderliche Belege bleiben nach isolierter Integration/Cleanup vorhanden, mit Source-/Config-/Environmentbindung und Datei-Hashmanifest. Retention nutzt vorhandene Evidenceverträge.
74
+ - Belege mit Pfadtraversal oder Symlinkescape werden nicht übernommen. Fehlgeschlagene Übernahme verhindert Abschluss; Kandidat bleibt für Recovery erhalten.
75
+ - Completion-Reruns schreiben in einen Runtimepfad; ausgewählte finale Assets werden explizit und einmal übernommen. Nutzeränderungen werden niemals automatisch mitcommittet.
76
+ - Integration meldet busy bis zur tatsächlichen Abnahme. Source-/HEADwechsel lehnt weiter ab und invalidiert alte Nachweise.
77
+ - Bei unverändertem Kandidaten Recovery zunächst neu verifizieren/integrieren; Implementierung nur bei konkretem Reparaturbedarf. Dafür vorhandenen Recoverypfad prüfen, nicht umgehen.
78
+ - Externe Prozesse können nicht zwangsweise durch advisory Locks gestoppt werden; Fingerprint-/HEADprüfungen bleiben der verbindliche Schutz.
79
+
80
+ ### E7 — Tatsächliche Schreibbereiche und isolierte Runtime-Caches
81
+
82
+ Dateien: vorhandene Scheduler-/Worker-/Candidate-/Worktree-/Dependencymodule; Tests: bestehende Parallel-/Recovery-/Schedulingtests.
83
+
84
+ - Kandidatendiff wird gegen `writes` abgeglichen. Pfadabweichungen mit geänderten Dateien und möglichen Siblingkollisionen diagnostizieren. Deklarationen sind keine Sandbox.
85
+ - Bei unerwarteter Kollision keine Integration aufgrund alter Nichtüberlappungsannahme; vorhandene Abnahme-/Recoveryverträge verwenden.
86
+ - Gemeinsamer Paketdownloadcache ist zulässig, writable Laufzeitcaches gehören zum Worktree. Kein Schreiben in Root-`.vite-temp` und keine pauschale Sandboxlockerung.
87
+ - Netzwerkfehler werden von Test-/Codefehlern getrennt. Offline-Cachemiss wird explizit berichtet, kein blindes endloses Retry.
88
+ - Paket-/Lockfilewechsel invalidiert Wiederverwendung; Cold/Warm-Setup getrennt messen.
89
+
90
+ ### E8 — Vollständige lokale Zeit-/Usageübersicht
91
+
92
+ Dateien: vorhandene Provider-/Telemetry-/Event-/Reportermodule, bestehende Telemetrietests.
93
+
94
+ - Pro Rolle und Versuch: gemessener Input, Cache-Lesen, Output, Usagequelle, Coverage und fehlende Daten. Provider-/Parent-/Childansichten nicht doppelt zählen.
95
+ - Guardian-/Approvaldaten nur erfassen, wenn vom Host verfügbar und eindeutig zuordenbar. Sonst Coverage-Lücke statt 0 oder erfundener Summe.
96
+ - Workerprozessdauer, Summe und Vereinigungsdauer paralleler Intervalle getrennt ausgeben. Infrastruktur-/Observer-/Produktfehler getrennte Kategorien.
97
+ - Fehlende Preise bleiben unbekannt. Cache-Lesen bleibt in Input enthalten. Reasoning-Output nicht nochmals addieren.
98
+ - Routine-Statusbeobachtung benötigt keinen Modellaufruf; bestehende lokale Ereignisse verwenden. Sichtbare Messlücken bleiben erhalten.
99
+
100
+ ### E9 — Verbesserungsnachweis und Release
101
+
102
+ - Regressionen des NEXUS-Laufs als deterministische Harnessfälle abnehmen; Layoutdefekt mit befülltem Incident-/Eventzustand und sichtbaren Panelunterkanten im Projektbenchmark reproduzieren.
103
+ - Browserbelege setzen bestätigten Serverstart und nachvollziehbare App-/Sourceidentität voraus. Fremder belegter Port wird als Fehler erkannt, nicht als gültiger Nachweis.
104
+ - Gepaarter Vorher-/Nachherbenchmark unter kontrollierten Bedingungen; erste Stufe mindestens drei Paare je Cold/Warm-Zustand, Messharness read-only während Sourcegates.
105
+ - Ergebnis mit Stichprobenzahl, empirischer Spanne, offenen Warte-/Kostenlücken und unveränderter Testqualität. Kein garantierter Sparwert.
106
+ - Produktionsdiff erhält unabhängige Codeprüfung und bei relevanten Grenzen unabhängige Sicherheitsprüfung. Implementer übernimmt diese Rollen nicht selbst. Fehlende Evidenz blockiert Releasebehauptung.
107
+ - Releasechecks: `npm run lint`, `npm run build`, `npm test`, `npm run docs:check`, `npm run package:check`, `npm run audit:ci` sowie geschützte/Integrationsgates des Repositories.
108
+ - Version erst für den fertigen Release synchronisieren: package/lockfile, Canon-/Providermanifeste, README; datierter CHANGELOG mit Verhalten, Migrationen und Grenzen. Tag/Publish erst nach Releasegates; GitHub-CI/npm-Veröffentlichung bestätigen, bevor der Release als veröffentlicht gilt.
109
+
110
+ ## Reihenfolge und Grenzen
111
+
112
+ 1. E1–E4: unmittelbare reproduzierbare Fehler.
113
+ 2. E5: keine angeblichen Effizienztools ohne operative Funktion.
114
+ 3. E6–E7: Belege, Integration und parallele Schreib-/Cachegrenzen.
115
+ 4. E8: vollständige und ehrliche Messbasis.
116
+ 5. E9: Vergleich und Release.
117
+
118
+ Für E6–E8 vor Umsetzung den aktuellen Callgraph und vorhandene Verträge eingrenzen. Die Messung beweist den Fehler im Benchmark, aber nicht, dass jeder aktuelle Pfad dieselbe Restlücke hat. Bereits korrekte Schutzmechanismen bleiben erhalten.
119
+
120
+ Keine Zeitprognose für diese Stories aus den sieben UI-Stories ableiten. Keine Installation oder authentifizierte Modellbenchmarkkosten allein durch diesen Entwurf auslösen. Nach Freigabe detaillierten Ausführungsplan und validiertes PRD erstellen; dann Implementierung test-first starten.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yoke",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "description": "Cross-agent coding harness for eight supported CLIs: curated skill canon, mechanical safety gates, autonomous loop with proof artifacts. CLI: npm i -g @hecer/yoke",
5
5
  "contextFileName": "GEMINI-EXTENSION.md"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hecer/yoke",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "description": "One harness, eight agents, zero trust in \"done\" — cross-agent coding harness for Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenCode, Kilo, Pi and Hermes: one skill canon, mechanical safety gates, an autonomous loop with screenshot/video proofs.",
5
5
  "type": "module",
6
6
  "bin": {