@mcptoolshop/claude-synergy 1.2.1 → 1.2.2

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/CHANGELOG.md CHANGED
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.2.2] - 2026-05-25
9
+
10
+ Docs-only patch. No code, schema, or behavior change. The `dist/` tarball is byte-identical to 1.2.1.
11
+
12
+ ### Changed
13
+ - **README.md** — added Tier 7 row for v1.3 `cs-actions:v1` fine-tuned synthesizer (release-gate eval numbers + anti-`unknown` bias as documented v1 limitation + pointer to handbook + dataset/README.md + TRAINING.md + EVAL.md).
14
+ - **README.md** — new top-level "Datasets and fine-tuned models" section covering `dataset/changelog-actions/v1` (301 entries, 8-enum taxonomy, A3c review) and `cs-actions:v1` (Qwen2.5-7B + LoRA, Ollama-deployed, eval table, anti-`unknown` bias, "not distributed through this repo" note).
15
+ - **README.{ja,zh,es,fr,hi,it,pt-BR}.md** — all 7 translations refreshed via TranslateGemma 12B (local, zero API cost).
16
+
17
+ ### Out of npm shape
18
+ - New handbook page `site/src/content/docs/handbook/cs-actions-v1.md` ships in the repo + on the [landing page](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) but is not in the npm tarball (`site/` is outside `files[]`).
19
+ - Dataset directory `dataset/changelog-actions/v1/` is in the repo + on the [`cs-actions-v1` GitHub Release](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) (eval-report.v1.json as single-file asset) but is not in the npm tarball.
20
+
21
+ ## [1.2.1] - 2026-05-24
22
+
23
+ ### Fixed
24
+ - **Fetcher-marker centralization** — `writeMarker` is now called from `fetchOne` on every successful fetch, not from inside each strategy. Strategies that returned 0 in-window dated items (most notably `aider` raw-changelog) never wrote a marker pre-fix and re-pulled the full source on every sync. Regression §8.21 protects against the re-pull behavior.
25
+
26
+ ### Changed
27
+ - **`webfetch` strategy renamed to `manual`** for `claude-api` + `anthropic-apps` to reflect reality — nothing in `fetch.ts` dispatches the strategy, so seeding is currently manual. `sync_status` now renders manual products as `manual` instead of `never` and excludes them from `--stale-only`.
28
+
29
+ ## [1.2.0] - 2026-05-24
30
+
31
+ ### Added
32
+ - **`sync_status` MCP tool** — per-product sync freshness. Inputs: `product?`, `stale_only?`, `stale_hours?`. Returns last fetch timestamp, hours since fetch, ingested release count. Use BEFORE trusting `latest_releases` to know if the corpus is stale.
33
+ - **`sync_now` MCP tool** — on-demand refresh (mirrors `hk sync`). Inputs: `product?`, `dry_run?`, `include_ingest?`, `include_embed?`, `timeout_ms?`. Rejects with `InvalidParams` if another `sync_now` is already in flight (in-process concurrency lock). Does NOT commit to git.
34
+ - MCP tool count 11 → 13.
35
+
36
+ ### Fixed
37
+ - **Marker-wipe bug (regression §8.20)** — `INSERT OR REPLACE INTO products` was cascading a `DELETE` to the `markers` FK on every `hk ingest`, silently resetting every product's `since` cursor. Replaced with `INSERT … ON CONFLICT(slug) DO UPDATE` to upsert in place without triggering the cascade.
38
+
8
39
  ## [1.1.1] - 2026-05-22
9
40
 
10
41
  ### Removed
package/README.es.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Datos actualizados (a partir de la versión 1.2.1):** 44 productos / 1.171 archivos de lanzamiento / 6.573 cambios / 1.260 entidades / 12 sinergias / 519 pruebas / 13 herramientas MCP / 17 comandos de línea de comandos. (La base de datos se actualizó mediante `sync_now` el 24 de mayo de 2026).
76
+ **Cifras actualizadas (a partir de la versión 1.2.1):** 44 productos / 1.171 archivos de lanzamiento / 6.573 cambios / 1.260 entidades / 12 sinergias / 519 pruebas / 13 herramientas MCP / 17 comandos de línea de comandos. (El corpus se actualizó mediante `sync_now` el 24 de mayo de 2026).
77
77
 
78
78
  ---
79
79
 
@@ -91,7 +91,8 @@ claude-synergy/
91
91
  | **4d — Playwright + registro de MCP + configuración YAML** | ✅ implementado | Windsurf a través de Playwright; Smithery + registro oficial de MCP como catálogos de la etapa 4; productos consolidados en `products.yaml`. |
92
92
  | **5 — Navegación con ventanas en la versión 1.1 + integración de OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, límites de fecha para todos los comandos de navegación, 3 nuevas herramientas MCP (un total de 11), proveedor de incrustación de OpenAI, dimensión de incrustación configurable, sincronización automática de `claude-code`, analizador genérico `keep-a-changelog`. |
93
93
  | **6 — Sincronización desde MCP en la versión 1.2** | ✅ implementado | `sync_status` (frescura por producto, detección de "obsoleto") y `sync_now` (obtención bajo demanda → ingestión → incrustación con vista previa de `dry_run` + bloqueo de concurrencia en el proceso). Elimina la brecha donde un agente podía consultar la base de datos pero no actualizarla. **También corrige:** el error de "limpieza de marcadores" donde `INSERT OR REPLACE INTO products` desencadenaba un DELETE en la clave externa `markers`, restableciendo silenciosamente el cursor `since` de cada producto en cada ingestión (regresión §8.20). |
94
- | **6.1 — Centralización de marcadores en la versión 1.2.1** | ✅ implementado | Se centralizó la función `writeMarker` en `fetchOne` para que cada extracción exitosa actualice el marcador. Las estrategias que devolvían 0 elementos con fecha dentro del período especificado (especialmente el registro de cambios "raw" de `aider`) nunca escribían un marcador y volvían a descargar `HISTORY.md` en cada sincronización. Se renombró la estrategia `webfetch` no implementada a `manual` para `claude-api` y `anthropic-apps`; ahora, `sync_status` muestra los productos configurados manualmente como "manual" en lugar de "nunca" y los excluye de `stale_only` (regresión §8.21). |
94
+ | **6.1 — v1.2.1: Centralización del marcador de extracción** | ✅ implementado | Se centralizó `writeMarker` en `fetchOne` para que cada extracción exitosa actualice el marcador. Las estrategias que devolvían 0 elementos con fecha dentro del período especificado (especialmente el registro de cambios "raw" de `aider`) nunca escribían un marcador y volvían a descargar `HISTORY.md` en cada sincronización. Se renombró la estrategia `webfetch` no implementada a `manual` para `claude-api` + `anthropic-apps`; ahora, `sync_status` muestra los productos manuales como "manual" en lugar de "nunca" y los excluye de `stale_only` (regresión §8.21). |
95
+ | **7 — v1.3: Sintetizador ajustado "cs-actions:v1"** | ✅ implementado | Primer modelo derivado entrenado en el corpus. Convierte una entrada de registro de cambios en un elemento de acción estricto en formato JSON: `{kind, severity, subject, action_text, deadline, tags}`. Qwen2.5-7B + LoRA en 242 entradas de `dataset/changelog-actions/v1/`, formato GGUF q8_0, implementado con Ollama. Evaluación de la versión: **88.1% de precisión en "kind" / 79.7% de precisión en "severity" / 0.842 macro-F1** frente a la verdad fundamental en un conjunto de 59 entradas estratificadas (+10.1 puntos porcentuales / +27.2 puntos porcentuales / +0.041 sobre la base qwen3:8b). Se etiquetó como `cs-actions-v1`; el informe de evaluación está adjunto a la [versión de GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) como una descarga de un solo archivo. **Limitación de la versión 1 documentada:** sesgo anti-"desconocido" (precisión 1.000 / recuperación 0.286) — el modelo subestima la clasificación de entradas ambiguas. Consulte el [manual → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md). |
95
96
 
96
97
  Hoja de ruta para la versión 0.8+: se encuentra en [URGENT_FINDINGS.md](URGENT_FINDINGS.md) y en los problemas.
97
98
 
@@ -290,6 +291,37 @@ Estrategias de recuperación: `gh-releases | rss | raw-changelog | html-scrape |
290
291
 
291
292
  ---
292
293
 
294
+ ## Conjuntos de datos y modelos ajustados
295
+
296
+ El corpus tiene una capa de modelos derivados: **conjuntos de datos** curados derivados de los puntos de los registros de cambios, y **modelos ajustados** entrenados en esos conjuntos de datos. El conjunto de datos es el artefacto en este repositorio; el modelo es el derivado.
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 entradas
299
+
300
+ Cada entrada combina un punto de cambio del corpus con un elemento de acción escrito a mano: `{kind, severity, subject, action_text, deadline, tags}`. Taxonomía de 8 elementos para `kind` (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), división de entrenamiento/validación estratificada 80/20, revisado por humanos y por un juez qwen3:8b de la familia cruzada (92.4% de acuerdo). Consulte [`dataset/README.md`](dataset/README.md) para la tabla de distribución, [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) para el contrato de campo por campo y [`STYLE.md`](dataset/changelog-actions/STYLE.md) para las reglas de escritura de `action_text`.
301
+
302
+ ### `cs-actions:v1` — sintetizador ajustado
303
+
304
+ Primer modelo entrenado en el conjunto de datos. Qwen2.5-7B-Instruct + LoRA (rango-256 / lineal completo, 100 pasos QLoRA en 242 entradas de entrenamiento), formato GGUF q8_0, implementado mediante un archivo de modelo Ollama de dos etapas (`cs-actions-base` + `cs-actions:v1`).
305
+
306
+ **Evaluación de la versión** (conjunto de validación estratificado de 59 entradas, tres ejecuciones, todas aprobadas, sin errores de análisis):
307
+
308
+ | Métrica | qwen3:8b base | cs-actions:v1 | Diferencia |
309
+ |---|---|---|---|
310
+ | Precisión en "kind" vs. verdad fundamental | 78.0% | **88.1%** | +10.1pp |
311
+ | Precisión en "severity" vs. verdad fundamental | 52.5% | **79.7%** | +27.2pp |
312
+ | Macro-F1 (clases con buena población) | 0.801 | **0.854** | +0.053 |
313
+ | Ejecución 3 — ablación de la sugerencia de "kind" (con sugerencia / sin sugerencia) | — | 0.842 / 0.777 | 6.5pt → zona objetivo |
314
+
315
+ Criterio de aprobación de la versión `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0.780 ≥ 0.780`) — APROBADO ✓. Veredictos individuales en [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json), también adjunto a la [versión de GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) como una descarga de un solo archivo.
316
+
317
+ **Limitación documentada de la versión 1: sesgo contra "desconocido".** "desconocido" es la única clase en la que cs-actions:v1 tiene un rendimiento inferior a qwen3:8b (F1 de 0.444 frente a 0.545). Precisión 1.000 / recuperación 0.286: cuando la entrada es genuinamente ambigua, el modelo se compromete con un tipo específico en lugar de abstenerse. Hereda el conocimiento previo de la familia qwen, que no se ha anulado completamente con LoRA. Los usuarios finales deben considerar una tasa de "kind: "desconocido"" inferior a la esperada como una señal para redirigir los lotes a una revisión humana. El [plan de la versión 2](dataset/README.md) aborda esto mediante la ampliación de la clase "desconocido" y la aleatorización de pistas.
318
+
319
+ **No se distribuye a través de este repositorio:** el formato GGUF q8_0 tiene aproximadamente 5 GB y el punto de control combinado tiene aproximadamente 15 GB. El conjunto de datos y la canalización de construcción son lo que se publica; el modelo se reconstruye localmente según [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) (cadena manual de 4 etapas, aproximadamente 88 minutos de calentamiento en una computadora portátil RTX 5080 con 16 GB de VRAM). El contrato de lanzamiento de tres ejecuciones se encuentra en [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md).
320
+
321
+ Una guía completa de uso, que incluye la invocación local de Ollama, el requisito de "format: "json"" para cada solicitud y la canalización de reconstrucción, se encuentra en la página del [manual → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/).
322
+
323
+ ---
324
+
293
325
  ## Pruebas
294
326
 
295
327
  El conjunto de pruebas Vitest cubre los niveles de unidad / integración / regresión / pruebas básicas. **[test-spec-3.md](test-spec-3.md) es la autoridad actual** a partir de la versión v0.7.0; [test-spec.md](test-spec.md) (v1) y [test-spec-2.md](test-spec-2.md) (v2) permanecen en el repositorio como registro histórico de la línea de diseño.
package/README.fr.md CHANGED
@@ -92,6 +92,7 @@ claude-synergy/
92
92
  | **5 — Navigation avec fenêtrage v1.1 + intégration OpenAI** | ✅ réalisé | `hk diff` / `hk breaking`, limites de date pour toutes les commandes de navigation, 3 nouveaux outils MCP (total de 11), fournisseur d'intégration OpenAI, dimension d'intégration configurable, synchronisation automatique de `claude-code`, analyseur générique `keep-a-changelog`. |
93
93
  | **6 — v1.2 synchronisation à partir de MCP** | ✅ réalisé | `sync_status` (état de fraîcheur par produit, détection "jamais/obsolète") et `sync_now` (récupération à la demande → ingestion → intégration avec aperçu `dry_run` + verrouillage de concurrence en cours). Comble le fossé où un agent pouvait interroger la base de données, mais pas la mettre à jour. **Corrige également :** un bug de suppression de marqueur où `INSERT OR REPLACE INTO products` déclenchait une suppression sur la clé étrangère `markers`, remettant silencieusement à zéro le curseur `since` de chaque produit à chaque ingestion (régression §8.20). |
94
94
  | **6.1 — v1.2.1 centralisation des marqueurs de récupération** | ✅ réalisé | La fonction `writeMarker` a été centralisée dans `fetchOne` afin que chaque récupération réussie mette à jour le marqueur. Les stratégies qui renvoyaient 0 éléments datés dans la plage spécifiée (notamment `aider` pour le journal des modifications brut) n'écrivaient pas de marqueur et ré-téléchargeaient `HISTORY.md` à chaque synchronisation. La stratégie `webfetch` non implémentée a été renommée en `manual` pour `claude-api` et `anthropic-apps` ; `sync_status` affiche désormais les produits "manuels" comme "manual" au lieu de "jamais" et les exclut de `stale_only` (régression §8.21). |
95
+ | **7 — v1.3 cs-actions:v1, synthétiseur affiné** | ✅ réalisé | Premier modèle descendant entraîné sur le corpus. Convertit une entrée de journal des modifications en une action structurée au format JSON : `{kind, severity, subject, action_text, deadline, tags}`. Qwen2.5-7B + LoRA sur 242 entrées provenant de `dataset/changelog-actions/v1/`, format GGUF q8_0, déployé via Ollama. Évaluation pour la validation de la version : **88,1 % pour la catégorie / 79,7 % pour la gravité / 0,842 pour le macro-F1** par rapport aux données réelles sur un ensemble de 59 entrées stratifiées (+10,1 points de pourcentage / +27,2 points de pourcentage / +0,041 par rapport au modèle de base qwen3:8b). Étiqueté `cs-actions-v1`; le rapport d'évaluation est joint à la [publication GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) en tant que fichier unique. **Limitation documentée de la version 1 :** biais anti-`inconnu` (précision de 1,000 / rappel de 0,286) — le modèle attribue incorrectement des catégories à des entrées ambiguës. Consultez le [guide → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md). |
95
96
 
96
97
  Feuille de route pour la version 0.8+ : consultable dans [URGENT_FINDINGS.md](URGENT_FINDINGS.md) et les problèmes.
97
98
 
@@ -290,6 +291,37 @@ Index complet dans [synergies/INDEX.md](synergies/INDEX.md).
290
291
 
291
292
  ---
292
293
 
294
+ ## Ensembles de données et modèles affinés
295
+
296
+ Le corpus comprend une couche descendante : des **ensembles de données** soigneusement sélectionnés dérivés de descriptions de modifications, et des **modèles affinés** entraînés sur ces ensembles de données. L'ensemble de données est l'artefact dans ce dépôt ; le modèle est descendant.
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 entrées
299
+
300
+ Chaque entrée associe une description de modification du corpus à une action rédigée manuellement : `{kind, severity, subject, action_text, deadline, tags}`. Taxonomie de 8 catégories (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), répartition 80/20 pour l'entraînement et la validation, revue par un humain et par un juge Qwen3:8b (accord de 92,4 %). Consultez [`dataset/README.md`](dataset/README.md) pour le tableau de distribution, [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) pour la description de chaque champ, et [`STYLE.md`](dataset/changelog-actions/STYLE.md) pour les règles de rédaction de la partie `action_text`.
301
+
302
+ ### `cs-actions:v1` — synthétiseur affiné
303
+
304
+ Premier modèle entraîné sur l'ensemble de données. Qwen2.5-7B-Instruct + LoRA (rang-256 / linéaire, 100 étapes QLoRA sur 242 entrées d'entraînement), format GGUF q8_0, déployé via un fichier Modelfile Ollama en deux étapes (`cs-actions-base` + `cs-actions:v1`).
305
+
306
+ **Évaluation pour la validation de la version** (ensemble de 59 entrées stratifiées, trois exécutions, toutes réussies, aucune erreur d'analyse) :
307
+
308
+ | Métrique | qwen3:8b base | cs-actions:v1 | Différence |
309
+ |---|---|---|---|
310
+ | Accord de catégorie par rapport aux données réelles | 78.0% | **88.1%** | +10,1 points de pourcentage |
311
+ | Accord de gravité par rapport aux données réelles | 52.5% | **79.7%** | +27,2 points de pourcentage |
312
+ | Macro-F1 (classes bien représentées) | 0.801 | **0.854** | +0.053 |
313
+ | Exécution 3 — suppression de l'indice de catégorie (avec indice / sans indice) | — | 0.842 / 0.777 | 6,5 points → zone cible |
314
+
315
+ Critère de validation de la version `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0,780 ≥ 0,780`) — RÉUSSI ✓. Les verdicts détaillés pour chaque entrée se trouvent dans [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json), également joints à la [publication GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) en tant que fichier unique.
316
+
317
+ **Limitation documentée de la version 1 : biais anti-`inconnu`.** La catégorie `inconnu` est la seule catégorie où cs-actions:v1 est moins performant que qwen3:8b (F1 de 0,444 contre 0,545). La précision est de 1,000 / le rappel est de 0,286 — lorsque l'entrée est réellement ambiguë, le modèle choisit une catégorie spécifique plutôt que de s'abstenir. Hérité du modèle de base de la famille qwen, et non entièrement remplacé par LoRA. Les utilisateurs doivent considérer un taux de `kind: "unknown"` inférieur à celui attendu comme un signal pour envoyer des lots à une révision humaine. Le [plan de la version 2](dataset/README.md) vise à résoudre ce problème grâce à l'augmentation de la classe inconnue et à la randomisation des indices.
318
+
319
+ **Non distribué via ce dépôt** — le fichier GGUF q8_0 fait environ 5 Go et le checkpoint fusionné fait environ 15 Go. Seuls le jeu de données et le pipeline de construction sont publiés ; le modèle est reconstruit localement conformément à [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) (chaîne manuelle en 4 étapes, environ 88 minutes de préchauffage sur un ordinateur portable RTX 5080 avec 16 Go de VRAM). Le contrat de validation pour la publication, qui comprend trois étapes, se trouve dans [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md).
320
+
321
+ Un guide d'utilisation complet, incluant l'invocation locale via Ollama, l'exigence de spécifier `format: "json"` pour chaque requête, et le pipeline de reconstruction, est disponible sur la page [du manuel → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/).
322
+
323
+ ---
324
+
293
325
  ## Tests
294
326
 
295
327
  La suite Vitest couvre les niveaux unitaires, d'intégration, de régression et de test de base. **[test-spec-3.md](test-spec-3.md) est la référence actuelle** à partir de la version v0.7.0 ; [test-spec.md](test-spec.md) (v1) et [test-spec-2.md](test-spec-2.md) (v2) restent dans le dépôt comme enregistrement historique de l'évolution de la conception.
package/README.hi.md CHANGED
@@ -92,6 +92,7 @@ claude-synergy/
92
92
  | **5 — v1.1 विंडो ब्राउज़िंग + ओपनएआई एम्बेड** | ✅ जारी किया गया | `hk diff` / `hk breaking`, सभी ब्राउज़िंग कमांड के लिए तारीख सीमा, 3 नए एमसीपी उपकरण (कुल 11), ओपनएआई एम्बेडिंग प्रदाता, कॉन्फ़िगर करने योग्य एम्बेडिंग आयाम, `claude-code` ऑटो-सिंक, सामान्य `keep-a-changelog` पार्सर। |
93
93
  | **6 — v1.2 एमसीपी से सिंक** | ✅ जारी किया गया | `sync_status` (प्रत्येक उत्पाद की ताज़गी की स्थिति, कभी नहीं/पुरानी स्थिति का पता लगाना) और `sync_now` (मांग पर डेटा प्राप्त करना → संसाधित करना → `dry_run` पूर्वावलोकन के साथ एम्बेड करना + प्रक्रिया में समवर्ती लॉक)। यह उस स्थिति को समाप्त करता है जहां एक उपयोगकर्ता डेटाबेस से जानकारी प्राप्त कर सकता था लेकिन उसे अपडेट नहीं कर सकता था। **इसके अतिरिक्त, यह निम्नलिखित समस्या को भी ठीक करता है:** "मार्कर-वाइप" बग, जिसमें `INSERT OR REPLACE INTO products` कमांड `markers` विदेशी कुंजी पर एक DELETE ऑपरेशन चलाता था, जिसके कारण प्रत्येक उत्पाद के लिए `since` कर्सर हर बार डेटा आयात करने पर रीसेट हो जाता था (प्रतिगमन §8.20)। |
94
94
  | **6.1 — v1.2.1 फ़ेचर-मार्कर केंद्रीकरण** | ✅ जारी किया गया | `writeMarker` फ़ंक्शन को `fetchOne` में केंद्रीकृत किया गया है, ताकि प्रत्येक सफल डेटा आयात के साथ मार्कर अपडेट हो जाए। पहले, उन रणनीतियों ने जो 0 इन-विंडो दिनांकित आइटम लौटाती थीं (विशेष रूप से `aider` कच्चा परिवर्तन लॉग), मार्कर नहीं लिखते थीं और हर सिंक पर `HISTORY.md` फ़ाइल को फिर से डाउनलोड करती थीं। `webfetch` रणनीति, जिसे लागू नहीं किया गया था, का नाम बदलकर `manual` कर दिया गया है, जिसका उपयोग `claude-api` और `anthropic-apps` के लिए किया जाता है; `sync_status` अब मैन्युअल उत्पादों को "never" के बजाय "manual" के रूप में प्रदर्शित करता है और उन्हें `stale_only` से बाहर रखता है (प्रतिगमन §8.21)। |
95
+ | **7 — v1.3 cs-actions:v1 फाइन-ट्यून किया गया सिंथेसाइज़र** | ✅ जारी किया गया | यह पहला डाउनस्ट्रीम मॉडल है जिसे डेटासेट पर प्रशिक्षित किया गया है। यह एक चेंजलॉग प्रविष्टि को एक सख्त-JSON एक्शन आइटम में बदलता है: `{kind, severity, subject, action_text, deadline, tags}`। Qwen2.5-7B + LoRA, `dataset/changelog-actions/v1/` से 242 प्रविष्टियों पर, q8_0 GGUF, Ollama के माध्यम से तैनात। रिलीज़-गेट मूल्यांकन: **88.1% प्रकार / 79.7% गंभीरता / 0.842 मैक्रो-एफ1** बनाम 59-प्रविष्टि के स्तरीकृत होल्डआउट पर वास्तविक डेटा (qwen3:8b बेस की तुलना में +10.1pp / +27.2pp / +0.041)। इसे `cs-actions-v1` के रूप में टैग किया गया है; मूल्यांकन रिपोर्ट को [GitHub रिलीज़](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) से एक सिंगल-फाइल डाउनलोड के रूप में संलग्न किया गया है। **दस्तावेज़ित v1 सीमा:** `अज्ञात` पूर्वाग्रह (सटीकता 1.000 / रिकॉल 0.286) — मॉडल अस्पष्ट इनपुट को कम आंकता है। [हैंडबुक → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md) देखें। |
95
96
 
96
97
  v0.8+ के लिए रोडमैप: [URGENT_FINDINGS.md](URGENT_FINDINGS.md) और मुद्दों में ट्रैक किया गया है।
97
98
 
@@ -290,6 +291,37 @@ v1.1 उपकरण `hk diff` / `hk breaking` और संस्करण त
290
291
 
291
292
  ---
292
293
 
294
+ ## डेटासेट और फाइन-ट्यून किए गए मॉडल
295
+
296
+ इस डेटासेट में एक डाउनस्ट्रीम परत है: क्यूरेटेड **डेटासेट** जो परिवर्तन विवरणों से प्राप्त किए गए हैं, और उन डेटासेट पर प्रशिक्षित **फाइन-ट्यून किए गए मॉडल**। डेटासेट इस रिपॉजिटरी में मौजूद है; मॉडल डाउनस्ट्रीम है।
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 प्रविष्टियाँ
299
+
300
+ प्रत्येक प्रविष्टि में डेटासेट से एक परिवर्तन विवरण को एक हस्तलिखित एक्शन आइटम के साथ जोड़ा गया है: `{kind, severity, subject, action_text, deadline, tags}`। 8-श्रेणी `kind` वर्गीकरण (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), 80/20 स्तरीकृत प्रशिक्षण/होल्डआउट, मानव द्वारा और क्रॉस-फैमिली qwen3:8b न्यायाधीश (92.4% सहमति) द्वारा समीक्षा की गई। वितरण तालिका के लिए [`dataset/README.md`](dataset/README.md), फ़ील्ड-दर-फ़ील्ड अनुबंध के लिए [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md), और `action_text` लेखन नियमों के लिए [`STYLE.md`](dataset/changelog-actions/STYLE.md) देखें।
301
+
302
+ ### `cs-actions:v1` — फाइन-ट्यून किया गया सिंथेसाइज़र
303
+
304
+ यह डेटासेट पर प्रशिक्षित पहला मॉडल है। Qwen2.5-7B-Instruct + LoRA (रैंक-256 / ऑल-लीनियर, 242 प्रशिक्षण प्रविष्टियों पर 100 चरण QLoRA), q8_0 GGUF, दो-चरणीय Ollama Modelfile (`cs-actions-base` + `cs-actions:v1`) के माध्यम से तैनात।
305
+
306
+ **रिलीज़-गेट मूल्यांकन** (59-प्रविष्टि स्तरीकृत होल्डआउट, तीन रन, सभी पास, शून्य पार्स त्रुटियां):
307
+
308
+ | मेट्रिक | qwen3:8b बेस | cs-actions:v1 | अंतर |
309
+ |---|---|---|---|
310
+ | वास्तविक डेटा के सापेक्ष प्रकार की सहमति | 78.0% | **88.1%** | +10.1pp |
311
+ | वास्तविक डेटा के सापेक्ष गंभीरता की सहमति | 52.5% | **79.7%** | +27.2pp |
312
+ | मैक्रो-एफ1 (अच्छी तरह से भरे गए वर्ग) | 0.801 | **0.854** | +0.053 |
313
+ | रन 3 — प्रकार-संकेत उन्मूलन (संकेत के साथ / बिना) | — | 0.842 / 0.777 | 6.5pt → लक्ष्य क्षेत्र |
314
+
315
+ रिलीज़ पास मानदंड `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0.780 ≥ 0.780`) — पास ✓। प्रत्येक प्रविष्टि के लिए पूर्ण निर्णय [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json) में, जो [GitHub रिलीज़](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) से एक सिंगल-फाइल डाउनलोड के रूप में भी संलग्न है।
316
+
317
+ **दस्तावेज़ित v1 सीमा — `अज्ञात` पूर्वाग्रह।** `अज्ञात` एकमात्र ऐसा वर्ग है जहां cs-actions:v1, qwen3:8b से खराब प्रदर्शन करता है (एफ1 0.444 बनाम 0.545)। सटीकता 1.000 / रिकॉल 0.286 — जब इनपुट वास्तव में अस्पष्ट होता है, तो मॉडल एक विशिष्ट प्रकार को चुनता है, बजाय कि वह 'अज्ञात' बताए। यह qwen-परिवार का पूर्व-निर्धारित व्यवहार है, जिसे LoRA द्वारा पूरी तरह से बदला नहीं गया है। डाउनस्ट्रीम उपयोगकर्ताओं को `kind: "unknown"` की दर को अपेक्षित से कम होने के संकेत के रूप में देखना चाहिए, और बैचों को मानव समीक्षा के लिए भेजना चाहिए। [v2 योजना](dataset/README.md) अज्ञात-वर्ग संवर्धन और संकेत-यादृच्छिकरण के साथ इस समस्या का समाधान करती है।
318
+
319
+ **यह फ़ाइल इस रिपॉजिटरी के माध्यम से वितरित नहीं की जाती है** - q8_0 GGUF फ़ाइल लगभग 5 GB की है, और मर्ज की गई चेकपॉइंट फ़ाइल लगभग 15 GB की है। डेटासेट और बिल्ड पाइपलाइन ही प्रकाशित किए गए हैं; मॉडल को स्थानीय रूप से फिर से बनाया जाता है, जैसा कि [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) में बताया गया है (4-चरणीय मैनुअल प्रक्रिया, RTX 5080 लैपटॉप पर 16 GB VRAM के साथ लगभग 88 मिनट का समय लगता है)। तीन बार चलने वाले रिलीज़-गेट अनुबंध [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md) में मौजूद हैं।
320
+
321
+ पूर्ण उपयोग विवरण - जिसमें स्थानीय ओलामा का उपयोग, प्रत्येक अनुरोध के लिए `format: "json"` की आवश्यकता, और बिल्ड पाइपलाइन शामिल हैं - [हैंडबुक → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) पेज पर उपलब्ध है।
322
+
323
+ ---
324
+
293
325
  ## परीक्षण।
294
326
 
295
327
  विटेस्ट (Vitest) में यूनिट, इंटीग्रेशन, रिग्रेशन और स्मोक परीक्षण शामिल हैं। v0.7.0 के अनुसार, "[test-spec-3.md](test-spec-3.md)" वर्तमान में आधिकारिक दस्तावेज है; [test-spec.md](test-spec.md) (v1) और [test-spec-2.md](test-spec-2.md) (v2) डिज़ाइन के ऐतिहासिक रिकॉर्ड के रूप में रिपॉजिटरी में मौजूद हैं।
package/README.it.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **Dati aggiornati (alla versione 1.2.1):** 44 prodotti / 1.171 file di rilascio / 6.573 modifiche / 1.260 entità / 12 sinergie / 519 test / 13 strumenti MCP / 17 comandi CLI. (Il database è stato aggiornato tramite `sync_now` il 24 maggio 2026.)
76
+ **Dati aggiornati (alla versione v1.2.1):** 44 prodotti / 1.171 file di rilascio / 6.573 modifiche / 1.260 entità / 12 sinergie / 519 test / 13 strumenti MCP / 17 comandi CLI. (Il database è stato aggiornato tramite `sync_now` il 24 maggio 2026.)
77
77
 
78
78
  ---
79
79
 
@@ -91,7 +91,8 @@ claude-synergy/
91
91
  | **4d — Playwright + registro MCP + configurazione YAML** | ✅ implementato | Windsurf tramite Playwright; Smithery + registro ufficiale MCP come cataloghi del livello 4; prodotti consolidati in `products.yaml`. |
92
92
  | **5 — v1.1: navigazione con finestre + integrazione OpenAI** | ✅ implementato | `hk diff` / `hk breaking`, limiti di data per tutti i comandi di navigazione, 3 nuovi strumenti MCP (totale di 11), provider di embedding OpenAI, dimensione dell'embedding configurabile, sincronizzazione automatica di `claude-code`, parser generico `keep-a-changelog`. |
93
93
  | **6 — v1.2: sincronizzazione da MCP** | ✅ implementato | `sync_status` (freschezza per prodotto, rilevamento di dati obsoleti) e `sync_now` (recupero su richiesta → ingestione → embedding con anteprima `dry_run` + blocco di concorrenza in-process). Risolve il problema in cui un'applicazione poteva interrogare il database ma non aggiornarlo. **Corregge anche:** un bug che causava la cancellazione di tutti i marker quando `INSERT OR REPLACE INTO products` propagava una cancellazione sulla chiave esterna `markers`, reimpostando silenziosamente il cursore `since` di ogni prodotto ad ogni ingestione (regressione §8.20). |
94
- | **6.1 — Centralizzazione del marcatore nel modulo fetcher (versione 1.2.1)** | ✅ implementato | La funzione `writeMarker` è stata centralizzata in `fetchOne` in modo che ogni operazione di recupero riuscita aggiorni il marcatore. Le strategie che restituivano 0 elementi datati all'interno della finestra temporale (in particolare, il registro delle modifiche "raw" di `aider`) non scrivevano mai un marcatore e scaricavano ripetutamente il file `HISTORY.md` ad ogni sincronizzazione. La strategia `webfetch` non implementata è stata rinominata in `manual` per `claude-api` e `anthropic-apps`; `sync_status` ora visualizza i prodotti configurati manualmente come "manual" invece di "mai" e li esclude da `stale_only` (regressione §8.21). |
94
+ | **6.1 — v1.2.1: centralizzazione del marcatore di recupero** | ✅ implementato | È stato centralizzato il metodo `writeMarker` in `fetchOne` in modo che ogni recupero riuscito aggiorni il marcatore. Le strategie che restituivano 0 elementi datati all'interno dell'intervallo (in particolare, il log delle modifiche "raw" di `aider`) non scrivevano mai un marcatore e ri-scaricavano sempre `HISTORY.md` ad ogni sincronizzazione. La strategia `webfetch` non implementata è stata rinominata in `manual` per `claude-api` e `anthropic-apps`; ora `sync_status` visualizza i prodotti manuali come "manual" invece di "mai" ed esclude questi prodotti da `stale_only` (regressione §8.21). |
95
+ | **7 — v1.3: sintetizzatore ottimizzato cs-actions:v1** | ✅ implementato | Primo modello downstream addestrato sul database. Converte una voce del log delle modifiche in un'azione in formato JSON rigoroso: `{kind, severity, subject, action_text, deadline, tags}`. Modello Qwen2.5-7B + LoRA su 242 voci di `dataset/changelog-actions/v1/`, in formato GGUF q8_0, distribuito tramite Ollama. Valutazione preliminare: **88,1% per la classificazione (kind) / 79,7% per la gravità (severity) / 0,842 macro-F1** rispetto ai dati di riferimento su 59 voci stratificate (+10,1 punti percentuali / +27,2 punti percentuali / +0,041 rispetto al modello base qwen3:8b). È stato assegnato il tag `cs-actions-v1`; il rapporto di valutazione è allegato al [rilascio di GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) come download di un singolo file. **Limitazione documentata della versione 1:** pregiudizio anti-"sconosciuto" (precisione 1,000 / richiamo 0,286) — il modello sottostima la classificazione di input ambigui. Consultare [manuale → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md). |
95
96
 
96
97
  Roadmap per la versione 0.8+: disponibile in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nella sezione issues.
97
98
 
@@ -290,6 +291,37 @@ Indice completo in [synergies/INDEX.md](synergies/INDEX.md).
290
291
 
291
292
  ---
292
293
 
294
+ ## Dataset e modelli ottimizzati
295
+
296
+ Il database ha un livello downstream: **dataset** curati derivati da voci di log delle modifiche e **modelli ottimizzati** addestrati su tali dataset. Il dataset è l'artefatto in questo repository; il modello è downstream.
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 voci
299
+
300
+ Ogni voce associa una voce di log delle modifiche dal database a un'azione scritta a mano: `{kind, severity, subject, action_text, deadline, tags}`. Tassonomia `kind` con 8 valori possibili (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), suddivisione in training/holdout 80/20, revisionato da esseri umani e da un modello qwen3:8b (accordo del 92,4%). Consultare [`dataset/README.md`](dataset/README.md) per la tabella di distribuzione, [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) per la descrizione dei campi e [`STYLE.md`](dataset/changelog-actions/STYLE.md) per le regole di scrittura di `action_text`.
301
+
302
+ ### `cs-actions:v1` — sintetizzatore ottimizzato
303
+
304
+ Primo modello addestrato sul dataset. Modello Qwen2.5-7B-Instruct + LoRA (rank-256 / all-linear, 100 passaggi QLoRA su 242 voci di training), in formato GGUF q8_0, distribuito tramite un Modelfile Ollama a due fasi (`cs-actions-base` + `cs-actions:v1`).
305
+
306
+ **Valutazione preliminare** (59 voci stratificate, tre esecuzioni, tutte superate, zero errori di parsing):
307
+
308
+ | Metrica | qwen3:8b base | cs-actions:v1 | Delta |
309
+ |---|---|---|---|
310
+ | Accordo con la classificazione rispetto ai dati di riferimento | 78.0% | **88.1%** | +10,1pp |
311
+ | Accordo con la gravità rispetto ai dati di riferimento | 52.5% | **79.7%** | +27,2pp |
312
+ | Macro-F1 (classi ben popolate) | 0.801 | **0.854** | +0.053 |
313
+ | Esecuzione 3 — rimozione del suggerimento (con suggerimento / senza) | — | 0.842 / 0.777 | 6,5 punti → zona target |
314
+
315
+ Criterio di superamento della valutazione `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0,780 ≥ 0,780`) — PASS ✓. I risultati dettagliati per ogni voce sono disponibili in [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json), allegato anche al [rilascio di GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) come download di un singolo file.
316
+
317
+ **Limitazione documentata della versione v1: pregiudizio nei confronti di "unknown".** "unknown" è l'unica classe in cui cs-actions:v1 ottiene risultati inferiori rispetto a qwen3:8b (F1 0.444 vs 0.545). Precisione 1.000 / richiamo 0.286: quando l'input è genuinamente ambiguo, il modello si orienta verso una categoria specifica anziché astenersi. Ha ereditato le caratteristiche della famiglia qwen, che non sono state completamente sovrascritte tramite LoRA. I sistemi che utilizzano questo modello dovrebbero considerare una percentuale di "kind: "unknown"" inferiore al previsto come un segnale per indirizzare i batch a una revisione umana. Il [piano per la versione v2](dataset/README.md) affronta questo problema con l'aumento della classe "unknown" e la randomizzazione degli indizi.
318
+
319
+ **Non distribuito tramite questo repository** — il file GGUF q8_0 ha una dimensione di circa 5 GB e il checkpoint unito ha una dimensione di circa 15 GB. Il dataset e la pipeline di costruzione sono ciò che viene pubblicato; il modello viene ricostruito localmente secondo le istruzioni in [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) (sequenza manuale in 4 fasi, circa 88 minuti di riscaldamento su un laptop RTX 5080 con 16 GB di VRAM). Il contratto di rilascio, che prevede tre iterazioni, è disponibile in [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md).
320
+
321
+ Una guida completa all'utilizzo, inclusa l'invocazione locale tramite Ollama, il requisito di specificare `format: "json"` per ogni richiesta e la pipeline di ricostruzione, è disponibile nella pagina [handbook → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/).
322
+
323
+ ---
324
+
293
325
  ## Test
294
326
 
295
327
  La suite di test Vitest copre i livelli di unità, integrazione, regressione e test preliminari. **[test-spec-3.md](test-spec-3.md) è la documentazione di riferimento corrente** a partire dalla versione 0.7.0; [test-spec.md](test-spec.md) (versione 1) e [test-spec-2.md](test-spec-2.md) (versione 2) rimangono nel repository come documentazione storica della progettazione.
package/README.ja.md CHANGED
@@ -92,6 +92,7 @@ claude-synergy/
92
92
  | **5 — v1.1:ウィンドウ表示機能 + OpenAIの埋め込み機能** | ✅ リリース済み | `hk diff` / `hk breaking`:すべての閲覧コマンドで日付範囲を指定可能。3つの新しいMCPツール(合計11個)、OpenAIの埋め込み機能、設定可能な埋め込み次元、`claude-code`の自動同期、汎用的な`keep-a-changelog`パーサー。 |
93
93
  | **6 — v1.2 sync-from-MCP** | ✅ リリース済み | `sync_status`(製品ごとの鮮度、"never"または"stale"の状態検出)と`sync_now`(オンデマンドでの取得→取り込み→埋め込み。`dry_run`プレビューと、処理中の同時実行ロック機能付き)。 これにより、コーパスを問い合わせできるものの、更新できないという問題を解消します。 **また、以下の問題を修正:** `INSERT OR REPLACE INTO products`によって`markers`の外部キーにDELETEが連鎖し、すべての製品の`since`カーソルが、取り込みのたびにリセットされていたバグ(回帰 §8.20)。 |
94
94
  | **6.1 — v1.2.1 fetcher-markerの中央管理** | ✅ リリース済み | `fetchOne`内で`writeMarker`を中央管理化し、すべての正常な取得でマーカーを更新するようにしました。 以前は、一定期間内に0件のアイテムを返した戦略(特に`aider`のraw-changelog)は、マーカーを書き込まず、`HISTORY.md`を毎回再取得していました。 実装されていない`webfetch`戦略を、`claude-api`および`anthropic-apps`向けに`manual`に改名しました。 `sync_status`では、現在、手動で設定された製品を"never"ではなく"manual"として表示し、`stale_only`から除外するようにしました(回帰 §8.21)。 |
95
+ | **7 — v1.3 cs-actions:v1 ファインチューニングされたシンセサイザー** | ✅ リリース済み | このモデルは、最初にトレーニングされたダウンストリームモデルです。変更履歴のエントリを、厳密なJSON形式のアクションアイテム `{kind, severity, subject, action_text, deadline, tags}` に変換します。Qwen2.5-7B + LoRA を使用し、`dataset/changelog-actions/v1/` から取得した242のエントリでトレーニング。q8_0 GGUF形式で、Ollamaを使用してデプロイされています。リリース前の評価では、**kind に関して 88.1%、severity に関して 79.7%、macro-F1 が 0.842** という結果であり、これは59エントリの検証データセットにおける ground truth と比較して、qwen3:8b のベースモデルと比較してそれぞれ +10.1pp、+27.2pp、+0.041 の改善です。`cs-actions-v1` というタグが付けられ、評価レポートは[GitHub Release](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) に単一ファイルとして添付されています。**v1 の制限事項として、`unknown` バイアス** が文書化されています (precision 1.000 / recall 0.286)。これは、モデルが曖昧な入力を適切に判断せず、誤ったカテゴリに分類してしまうことを意味します。詳細については、[handbook → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/)、[`dataset/README.md`](dataset/README.md)、[`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md)、[`EVAL.md`](dataset/changelog-actions/v1/EVAL.md) を参照してください。 |
95
96
 
96
97
  v0.8以降のロードマップ:[URGENT_FINDINGS.md](URGENT_FINDINGS.md)およびissueで追跡中。
97
98
 
@@ -290,6 +291,37 @@ v1.1のツールは、`hk diff` / `hk breaking`および、以前はスクリプ
290
291
 
291
292
  ---
292
293
 
294
+ ## データセットとファインチューニングされたモデル
295
+
296
+ このリポジトリには、変更履歴から作成された **データセット** と、それらのデータセットでトレーニングされた **ファインチューニングされたモデル** が含まれています。データセットはリポジトリ内のファイルであり、モデルはダウンストリームで使用されます。
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 エントリ
299
+
300
+ 各エントリは、変更履歴からの変更内容と、手書きで作成されたアクションアイテム `{kind, severity, subject, action_text, deadline, tags}` を組み合わせたものです。`kind` は 8 つのカテゴリ(`breaking | deprecation | security | feature | fix | performance | docs | unknown`)を持つタクソノミーであり、80/20 の割合でトレーニングデータと検証データに分割されています。A3c によるレビューは、人間と qwen3:8b の判断者によって行われ、92.4% の合意が得られました。分布については [`dataset/README.md`](dataset/README.md) を、各フィールドの説明については [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) を、アクションテキストの書き方については [`STYLE.md`](dataset/changelog-actions/STYLE.md) を参照してください。
301
+
302
+ ### `cs-actions:v1` — ファインチューニングされたシンセサイザー
303
+
304
+ このモデルは、データセットでトレーニングされた最初のモデルです。Qwen2.5-7B-Instruct + LoRA (rank-256 / all-linear, 100 steps QLoRA) を使用し、242 のトレーニングエントリでトレーニング。q8_0 GGUF 形式で、Ollama Modelfile (`cs-actions-base` + `cs-actions:v1`) を使用してデプロイされています。
305
+
306
+ **リリース前の評価** (59 エントリの検証データセット、3 回の実行、すべて合格、パースエラーはゼロ):
307
+
308
+ | 指標 | qwen3:8b (ベース) | cs-actions:v1 | 差分 |
309
+ |---|---|---|---|
310
+ | ground truth との kind の一致率 | 78.0% | **88.1%** | +10.1pp |
311
+ | ground truth との severity の一致率 | 52.5% | **79.7%** | +27.2pp |
312
+ | Macro-F1 (十分に多くのカテゴリが存在する場合) | 0.801 | **0.854** | +0.053 |
313
+ | 3 回目の実行 — kind のヒントの有無による比較 | — | 0.842 / 0.777 | 6.5pt → 目標範囲 |
314
+
315
+ リリース基準: `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0.780 ≥ 0.780`) — 合格 ✓。各エントリの詳細な結果は [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json) に記載されており、[GitHub Release](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) に単一ファイルとして添付されています。
316
+
317
+ **v1 の制限事項 — `unknown` バイアス。** `unknown` は、cs-actions:v1 が qwen3:8b よりも性能が低い唯一のカテゴリです (F1 スコア 0.444 vs 0.545)。precision は 1.000、recall は 0.286 であり、入力が実際に曖昧な場合、モデルは特定のカテゴリに分類する傾向があり、不明と判断しません。このバイアスは、qwen ファミリーの既存の傾向に由来し、LoRA によって完全に修正されていません。ダウンストリームの利用者は、期待よりも `kind: "unknown"` の割合が低い場合、そのバッチを人間のレビューに回すようにする必要があります。この問題は、[v2 の計画](dataset/README.md) で、`unknown` クラスのデータ拡張とヒントのランダム化によって解決される予定です。
318
+
319
+ **このリポジトリからは配布されません**。q8_0形式のGGUFファイルは約5GB、マージされたチェックポイントは約15GBです。公開されているのはデータセットとビルドパイプラインであり、モデルはローカルで再構築されます(詳細については[`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md)を参照)。4段階の手動プロセスで、RTX 5080のノートパソコン(16GBのVRAM)で約88分かかります。リリースに関する契約は[`EVAL.md`](dataset/changelog-actions/v1/EVAL.md)に記載されています。
320
+
321
+ ローカルでのOllamaの利用方法、リクエストごとに`format: "json"`を指定する必要性、および再構築パイプラインなど、詳細な利用方法については、[ハンドブック → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/)のページをご覧ください。
322
+
323
+ ---
324
+
293
325
  ## テスト
294
326
 
295
327
  Vitestスイートは、ユニットテスト、統合テスト、回帰テスト、および初期動作確認(smoke)の各レベルをカバーします。**[test-spec-3.md](test-spec-3.md)が現在の仕様**です(v0.7.0時点)。[test-spec.md](test-spec.md)(v1)および[test-spec-2.md](test-spec-2.md)(v2)は、設計の経緯を示すための履歴として、リポジトリに残っています。
package/README.md CHANGED
@@ -92,8 +92,9 @@ claude-synergy/
92
92
  | **5 — v1.1 windowed browsing + OpenAI embed** | ✅ shipped | `hk diff` / `hk breaking`, date bounds across all browsing commands, 3 new MCP tools (11 total), OpenAI embedding provider, configurable embedding dimension, `claude-code` auto-sync, generic `keep-a-changelog` parser |
93
93
  | **6 — v1.2 sync-from-MCP** | ✅ shipped | `sync_status` (per-product freshness, never/stale detection) and `sync_now` (on-demand fetch → ingest → embed with `dry_run` preview + in-process concurrency lock). Closes the seam where a calling agent could query the corpus but not refresh it. **Also fixes:** marker-wipe bug where `INSERT OR REPLACE INTO products` cascaded a DELETE on the `markers` FK, silently resetting every product's `since` cursor on each ingest (regression §8.20). |
94
94
  | **6.1 — v1.2.1 fetcher-marker centralization** | ✅ shipped | Centralized `writeMarker` in `fetchOne` so every successful fetch updates the marker — pre-fix, strategies that returned 0 in-window dated items (most notably `aider` raw-changelog) never wrote a marker and re-pulled `HISTORY.md` on every sync. Renamed unimplemented `webfetch` strategy to `manual` for `claude-api` + `anthropic-apps`; `sync_status` now renders manual products as "manual" instead of "never" and excludes them from `stale_only` (regression §8.21). |
95
+ | **7 — v1.3 cs-actions:v1 fine-tuned synthesizer** | ✅ shipped | First downstream model trained on the corpus. Converts one changelog entry → one strict-JSON action item `{kind, severity, subject, action_text, deadline, tags}`. Qwen2.5-7B + LoRA on 242 entries from `dataset/changelog-actions/v1/`, q8_0 GGUF, Ollama-deployed. Release-gate eval: **88.1% kind / 79.7% severity / 0.842 macro-F1** vs ground truth on 59-entry stratified holdout (+10.1pp / +27.2pp / +0.041 over qwen3:8b base). Tagged `cs-actions-v1`; eval report attached to the [GitHub Release](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) as a single-file download. **Documented v1 limitation:** anti-`unknown` bias (precision 1.000 / recall 0.286) — model under-flags ambiguous inputs. See [handbook → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md). |
95
96
 
96
- Roadmap beyond v1.2: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
97
+ Roadmap beyond v1.3: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
97
98
 
98
99
  ---
99
100
 
@@ -290,6 +291,37 @@ Full index in [synergies/INDEX.md](synergies/INDEX.md).
290
291
 
291
292
  ---
292
293
 
294
+ ## Datasets and fine-tuned models
295
+
296
+ The corpus has a downstream layer: curated **datasets** derived from change bullets, and **fine-tuned models** trained on those datasets. The dataset is the artifact in this repo; the model is downstream.
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 entries
299
+
300
+ Each entry pairs one change bullet from the corpus with a hand-written action item: `{kind, severity, subject, action_text, deadline, tags}`. 8-enum `kind` taxonomy (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), stratified 80/20 train/holdout, A3c-reviewed by human + cross-family qwen3:8b judge (92.4% agreement). See [`dataset/README.md`](dataset/README.md) for the distribution table, [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) for the field-by-field contract, and [`STYLE.md`](dataset/changelog-actions/STYLE.md) for the `action_text` writing rules.
301
+
302
+ ### `cs-actions:v1` — fine-tuned synthesizer
303
+
304
+ First model trained on the dataset. Qwen2.5-7B-Instruct + LoRA (rank-256 / all-linear, 100 steps QLoRA on 242 training entries), q8_0 GGUF, deployed via two-stage Ollama Modelfile (`cs-actions-base` + `cs-actions:v1`).
305
+
306
+ **Release-gate eval** (59-entry stratified holdout, three runs, all passed, zero parse errors):
307
+
308
+ | Metric | qwen3:8b base | cs-actions:v1 | Delta |
309
+ |---|---|---|---|
310
+ | Kind agreement vs ground truth | 78.0% | **88.1%** | +10.1pp |
311
+ | Severity agreement vs ground truth | 52.5% | **79.7%** | +27.2pp |
312
+ | Macro-F1 (well-populated classes) | 0.801 | **0.854** | +0.053 |
313
+ | Run 3 — kind-hint ablation (with hint / without) | — | 0.842 / 0.777 | 6.5pt → target zone |
314
+
315
+ Release pass criterion `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0.780 ≥ 0.780`) — PASS ✓. Full per-entry verdicts in [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json), also attached to the [GitHub Release](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) as a single-file download.
316
+
317
+ **Documented v1 limitation — anti-`unknown` bias.** `unknown` is the only class where cs-actions:v1 underperforms qwen3:8b (F1 0.444 vs 0.545). Precision 1.000 / recall 0.286 — when input is genuinely ambiguous, the model commits to a specific kind rather than abstain. Inherited qwen-family prior, not fully overridden by the LoRA. Downstream consumers should treat a lower-than-expected `kind: "unknown"` rate as a signal to route batches to human review. The [v2 plan](dataset/README.md) addresses this with unknown-class augmentation plus hint-randomization.
318
+
319
+ **Not distributed through this repo** — the q8_0 GGUF is ~5 GB and the merged checkpoint is ~15 GB. The dataset and the build pipeline are what's published; the model rebuilds locally per [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) (4-stage manual chain, ~88 min warm on RTX 5080 Laptop 16 GB VRAM). The three-run release-gate contract lives in [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md).
320
+
321
+ Full usage walkthrough — including local Ollama invocation, the `format: "json"` per-request caller requirement, and the rebuild pipeline — is on the [handbook → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) page.
322
+
323
+ ---
324
+
293
325
  ## Testing
294
326
 
295
327
  Vitest suite covers unit / integration / regression / smoke tiers. **[test-spec-3.md](test-spec-3.md) is the current authority** as of v0.7.0; [test-spec.md](test-spec.md) (v1) and [test-spec-2.md](test-spec-2.md) (v2) remain in the repo as historical record of the design lineage.
package/README.pt-BR.md CHANGED
@@ -92,6 +92,7 @@ claude-synergy/
92
92
  | **5 — Navegação com janelas (v1.1) + incorporação da OpenAI** | ✅ implementado | `hk diff` / `hk breaking`, limites de data em todos os comandos de navegação, 3 novas ferramentas MCP (total de 11), provedor de incorporação da OpenAI, dimensão de incorporação configurável, sincronização automática do `claude-code`, analisador genérico `keep-a-changelog`. |
93
93
  | **6 — v1.2 sync-from-MCP** | ✅ implementado | `sync_status` (frescor por produto, detecção de "obsoleto") e `sync_now` (busca sob demanda → ingestão → incorporação com visualização "dry_run" + bloqueio de concorrência em processo). Elimina a lacuna onde um agente poderia consultar o corpus, mas não atualizá-lo. **Corrige também:** um erro em que a exclusão de marcadores, ao usar `INSERT OR REPLACE INTO products`, causava uma exclusão em cascata na chave estrangeira `markers`, reiniciando silenciosamente o cursor "since" de cada produto a cada ingestão (regressão §8.20). |
94
94
  | **6.1 — Centralização do marcador de recuperação (versão 1.2.1)** | ✅ implementado | Centralizei a função `writeMarker` em `fetchOne` para que cada recuperação bem-sucedida atualize o marcador. Estratégias que retornavam 0 itens datados dentro do período especificado (principalmente o "changelog" bruto do `aider`) nunca escreviam um marcador e, portanto, baixavam o arquivo `HISTORY.md` a cada sincronização. Renomeei a estratégia `webfetch` não implementada para `manual` para as APIs `claude-api` e `anthropic-apps`. Agora, o `sync_status` exibe os produtos configurados como "manual" em vez de "nunca" e os exclui do processo `stale_only` (regressão §8.21). |
95
+ | **7 — v1.3 cs-actions:v1, sintetizador ajustado** | ✅ implementado | Primeiro modelo derivado treinado no conjunto de dados. Converte uma entrada do changelog em um item de ação estrito em formato JSON: `{kind, severity, subject, action_text, deadline, tags}`. Qwen2.5-7B + LoRA em 242 entradas de `dataset/changelog-actions/v1/`, formato GGUF q8_0, implantado via Ollama. Avaliação para lançamento: **88,1% de precisão em "kind" / 79,7% de precisão em "severity" / 0,842 de macro-F1** em comparação com a referência em 59 entradas estratificadas (+10,1 pontos percentuais / +27,2 pontos percentuais / +0,041 em relação à versão base qwen3:8b). Marcado como `cs-actions-v1`; o relatório de avaliação está anexado à [versão do GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) como um arquivo único para download. **Limitação documentada da versão 1:** viés anti-"desconhecido" (precisão de 1,000 / revocação de 0,286) — o modelo classifica incorretamente entradas ambíguas. Consulte o [manual → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md). |
95
96
 
96
97
  Roteiro para a versão 0.8+: acompanhado em [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nas issues.
97
98
 
@@ -290,6 +291,37 @@ Estratégias de busca: `gh-releases | rss | raw-changelog | html-scrape | catalo
290
291
 
291
292
  ---
292
293
 
294
+ ## Conjuntos de dados e modelos ajustados
295
+
296
+ O conjunto de dados possui uma camada de aplicação: **conjuntos de dados** selecionados derivados de descrições de alterações e **modelos ajustados** treinados nesses conjuntos de dados. O conjunto de dados é o artefato neste repositório; o modelo é a aplicação.
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 entradas
299
+
300
+ Cada entrada associa uma descrição de alteração do conjunto de dados a um item de ação escrito manualmente: `{kind, severity, subject, action_text, deadline, tags}`. Taxonomia de 8 categorias para "kind" (`breaking | deprecation | security | feature | fix | performance | docs | unknown`), divisão estratificada de 80/20 para treinamento/validação, revisado por humanos e por um modelo de referência qwen3:8b (92,4% de concordância). Consulte [`dataset/README.md`](dataset/README.md) para a tabela de distribuição, [`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) para o contrato de campo a campo e [`STYLE.md`](dataset/changelog-actions/STYLE.md) para as regras de escrita de `action_text`.
301
+
302
+ ### `cs-actions:v1` — sintetizador ajustado
303
+
304
+ Primeiro modelo treinado no conjunto de dados. Qwen2.5-7B-Instruct + LoRA (rank-256 / all-linear, 100 etapas de QLoRA em 242 entradas de treinamento), formato GGUF q8_0, implantado via Modelfile de duas etapas do Ollama (`cs-actions-base` + `cs-actions:v1`).
305
+
306
+ **Avaliação para lançamento** (59 entradas estratificadas, três execuções, todas aprovadas, sem erros de análise):
307
+
308
+ | Métrica | qwen3:8b base | cs-actions:v1 | Diferença |
309
+ |---|---|---|---|
310
+ | Precisão em "kind" vs. referência | 78.0% | **88.1%** | +10,1 pp |
311
+ | Precisão em "severity" vs. referência | 52.5% | **79.7%** | +27,2 pp |
312
+ | Macro-F1 (classes com muitos exemplos) | 0.801 | **0.854** | +0.053 |
313
+ | Execução 3 — ablação de "hint" (com "hint" / sem "hint") | — | 0.842 / 0.777 | 6,5 pontos → zona alvo |
314
+
315
+ Critério de aprovação para lançamento `qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0,780 ≥ 0,780`) — APROVADO ✓. Resultados detalhados para cada entrada em [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json), também anexado à [versão do GitHub](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1) como um arquivo único para download.
316
+
317
+ **Limitação documentada da versão 1 — viés anti-"desconhecido".** "desconhecido" é a única classe em que cs-actions:v1 tem desempenho inferior ao qwen3:8b (F1 de 0,444 vs 0,545). Precisão de 1,000 / revocação de 0,286 — quando a entrada é genuinamente ambígua, o modelo escolhe uma categoria específica em vez de abster-se. Herda o comportamento padrão da família qwen, que não foi totalmente substituído pelo LoRA. Os usuários devem tratar uma taxa de "kind: "desconhecido"" inferior ao esperado como um sinal para encaminhar lotes para revisão humana. O [plano da versão 2](dataset/README.md) aborda isso com a ampliação da classe "desconhecido" e a randomização de "hints".
318
+
319
+ **Não distribuído através deste repositório** — o arquivo GGUF q8_0 tem aproximadamente 5 GB e o checkpoint combinado tem aproximadamente 15 GB. O conjunto de dados e o processo de construção são o que está publicado; o modelo é reconstruído localmente, conforme descrito em [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) (processo manual em 4 etapas, leva cerca de 88 minutos para ser carregado em uma placa RTX 5080 para laptop com 16 GB de VRAM). O contrato de validação para a versão final está em [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md).
320
+
321
+ Um guia completo de uso — incluindo a invocação local via Ollama, a exigência de formatação "json" para cada requisição e o processo de reconstrução — está disponível na página do [manual → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/).
322
+
323
+ ---
324
+
293
325
  ## Testes
294
326
 
295
327
  O conjunto de testes Vitest cobre os níveis de unidade / integração / regressão / teste rápido. **[test-spec-3.md](test-spec-3.md) é a documentação atual** a partir da versão v0.7.0; [test-spec.md](test-spec.md) (v1) e [test-spec-2.md](test-spec-2.md) (v2) permanecem no repositório como registro histórico da linhagem do design.
package/README.zh.md CHANGED
@@ -73,7 +73,7 @@ claude-synergy/
73
73
  └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
74
74
  ```
75
75
 
76
- **实时数据(截至 v1.2.1 版本):** 44 个产品 / 1,171 个发布文件 / 6,573 个变更 / 1,260 个实体 / 12 个协同关系 / 519 个测试 / 13 个 MCP 工具 / 17 个 CLI 命令。(语料库已于 2026-05-24 通过 `sync_now` 命令刷新。)
76
+ **实时数据(截至 v1.2.1 版本):** 44 个产品 / 1,171 个发布文件 / 6,573 个变更 / 1,260 个实体 / 12 个协同项目 / 519 个测试 / 13 个 MCP 工具 / 17 个 CLI 命令。(语料库已于 2026-05-24 通过 `sync_now` 命令刷新。)
77
77
 
78
78
  ---
79
79
 
@@ -91,7 +91,8 @@ claude-synergy/
91
91
  | 4d — playwright + MCP 注册 + YAML 配置文件。 | ✅ 已发货。 | 使用 Playwright 进行网页抓取;Smithery + 官方 MCP 注册信息作为第四级目录;产品信息已整合到 `products.yaml` 文件中。 |
92
92
  | **5 — v1.1 版本:窗口浏览 + OpenAI 嵌入** | ✅ 已发货。 | `hk diff` / `hk breaking`,所有浏览命令都支持日期范围;3 个新的 MCP 工具 (总共 11 个);OpenAI 嵌入提供程序;可配置的嵌入维度;`claude-code` 自动同步;通用的 `keep-a-changelog` 解析器。 |
93
93
  | **6 — v1.2 版本:从 MCP 同步** | ✅ 已发货。 | `sync_status` (报告每个产品的更新状态,检测是否过时) 和 `sync_now` (按需获取 → 导入 → 嵌入,并提供 `dry_run` 预览 + 进程内并发锁定)。 解决了调用方可以查询语料库,但无法刷新的问题。 **此外,还修复了:** 标记清除错误,即 `INSERT OR REPLACE INTO products` 会级联删除 `markers` 上的外键,从而在每次导入时静默地重置每个产品的 `since` 游标 (回归 §8.20)。 |
94
- | **6.1 — v1.2.1:Fetcher 标记集中化** | ✅ 已发货。 | 将 `writeMarker` 函数集中到 `fetchOne` 函数中,以便每次成功的获取都更新标记。之前,一些策略(特别是 `aider` 原始变更日志)返回 0 个在窗口期内的条目,因此从未写入标记,并且每次同步都会重新拉取 `HISTORY.md` 文件。已将未实现的 `webfetch` 策略重命名为 `manual`,适用于 `claude-api` `anthropic-apps`。现在,`sync_status` 会将手动配置的产品显示为 "manual",而不是 "never",并且将其排除在 `stale_only` 列表中(回归问题 §8.21)。 |
94
+ | **6.1 — v1.2.1:fetcher-marker 集中化** | ✅ 已发货。 | 将 `writeMarker` 函数集中到 `fetchOne` 函数中,以便每次成功的获取都更新标记。之前,某些策略(特别是 `aider` 的原始变更日志)在窗口期内没有返回任何条目,因此从未写入标记,并且每次同步都会重新拉取 `HISTORY.md` 文件。将未实现的 `webfetch` 策略重命名为 `manual`,用于 `claude-api` + `anthropic-apps`;现在,`sync_status` 将手动产品显示为 "manual",而不是 "never",并且将其排除在 `stale_only` 之外(回归 §8.21)。 |
95
+ | **7 — v1.3:cs-actions:v1:微调的合成器** | ✅ 已发货。 | 第一个基于语料库训练的下游模型。将一条变更日志条目转换为一个严格的 JSON 格式的操作项:`{kind, severity, subject, action_text, deadline, tags}`。使用 Qwen2.5-7B + LoRA,基于 `dataset/changelog-actions/v1/` 中的 242 个条目进行训练,使用 q8_0 GGUF 格式,并通过 Ollama 部署。发布前评估:**kind 类别准确率 88.1% / severity 严重程度准确率 79.7% / macro-F1 值为 0.842**,与 59 个分层验证集中的真实值相比(相对于 qwen3:8b 基础模型,分别提高了 +10.1pp / +27.2pp / +0.041)。已标记为 `cs-actions-v1`;评估报告已附加到 [GitHub 发布页面](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1),以单个文件的形式下载。**记录了 v1 版本的限制:**存在对 "unknown" 类型的偏见(精确率 1.000 / 召回率 0.286)——模型会低估不明确的输入。请参阅 [手册 → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) + [`dataset/README.md`](dataset/README.md) + [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md) + [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md)。 |
95
96
 
96
97
  v0.8 及后续版本的开发计划,请参考 [URGENT_FINDINGS.md](URGENT_FINDINGS.md) 文件以及相关问题列表。
97
98
 
@@ -290,6 +291,37 @@ v1.1 版本的工具模仿了 `hk diff` / `hk breaking` 命令,以及以前需
290
291
 
291
292
  ---
292
293
 
294
+ ## 数据集和微调模型
295
+
296
+ 语料库包含一个下游层:从变更条目中提取的**数据集**,以及基于这些数据集训练的**微调模型**。数据集是此仓库中的文件,而模型是下游应用。
297
+
298
+ ### `dataset/changelog-actions/v1` — 301 个条目
299
+
300
+ 每个条目将语料库中的一条变更条目与人工编写的操作项配对:`{kind, severity, subject, action_text, deadline, tags}`。`kind` 类别采用 8 种枚举类型(`breaking | deprecation | security | feature | fix | performance | docs | unknown`),采用 80/20 的分层训练/验证集划分,由人工和跨家族的 qwen3:8b 评委进行 A3c 审查(一致性为 92.4%)。请参阅 [`dataset/README.md`](dataset/README.md) 以获取分布表,[`SCHEMA.md`](dataset/changelog-actions/SCHEMA.md) 以获取字段级别的说明,以及 [`STYLE.md`](dataset/changelog-actions/STYLE.md) 以获取 `action_text` 编写规则。
301
+
302
+ ### `cs-actions:v1` — 微调的合成器
303
+
304
+ 第一个基于数据集训练的模型。使用 Qwen2.5-7B-Instruct + LoRA(rank-256 / all-linear,使用 QLoRA 方法在 242 个训练条目上进行 100 步训练),使用 q8_0 GGUF 格式,并通过双阶段的 Ollama Modelfile 部署(`cs-actions-base` + `cs-actions:v1`)。
305
+
306
+ **发布前评估**(59 个分层验证集,三次运行,均通过,无解析错误):
307
+
308
+ | 指标 | qwen3:8b 基础模型 | cs-actions:v1 | 增量 |
309
+ |---|---|---|---|
310
+ | 与真实值相比的 kind 类别准确率 | 78.0% | **88.1%** | +10.1pp |
311
+ | 与真实值相比的 severity 严重程度准确率 | 52.5% | **79.7%** | +27.2pp |
312
+ | Macro-F1 (类别分布均衡) | 0.801 | **0.854** | +0.053 |
313
+ | 第三次运行 — 移除 hint 的实验 (带 hint / 不带 hint) | — | 0.842 / 0.777 | 6.5pt → 目标区域 |
314
+
315
+ 发布通过标准:`qwen3-vs-cs-actions ≥ qwen3-vs-GT` (`0.780 ≥ 0.780`) — 通过 ✓。每个条目的详细评估结果位于 [`eval-report.v1.json`](dataset/changelog-actions/v1/eval-report.v1.json),也已附加到 [GitHub 发布页面](https://github.com/mcp-tool-shop-org/claude-synergy/releases/tag/cs-actions-v1),以单个文件的形式下载。
316
+
317
+ **已记录的 v1 版本限制 — 对“未知”类别的偏见。** “未知”是唯一一个在 cs-actions:v1 中表现不如 qwen3:8b 的类别(F1 分数:0.444 vs 0.545)。 准确率 1.000 / 召回率 0.286 — 当输入确实存在歧义时,模型会倾向于选择一种特定的类别,而不是选择“未知”。 该模型继承了 qwen 系列的先验知识,但 LoRA 并没有完全覆盖。下游应用应该将低于预期“kind: "unknown"”的出现率视为一个信号,用于将批次发送到人工审核。 [v2 计划](dataset/README.md) 通过增加“未知”类别的样本以及提示随机化来解决这个问题。
318
+
319
+ **未通过此仓库分发** — q8_0 GGUF 文件约为 5 GB,合并后的检查点文件约为 15 GB。 发布的是数据集和构建流水线;模型需要在本地进行重建,具体步骤请参考 [`TRAINING.md`](dataset/changelog-actions/v1/TRAINING.md)(包含 4 个手动步骤,在 RTX 5080 笔记本电脑上,16 GB 显存,需要约 88 分钟的预热)。 三次运行的发布流程规范位于 [`EVAL.md`](dataset/changelog-actions/v1/EVAL.md)。
320
+
321
+ 完整的用法指南 — 包括本地 Ollama 调用、每个请求的 `format: "json"` 格式要求以及重建流水线 — 可以在 [手册 → cs-actions:v1](https://mcp-tool-shop-org.github.io/claude-synergy/handbook/cs-actions-v1/) 页面上找到。
322
+
323
+ ---
324
+
293
325
  ## 测试
294
326
 
295
327
  Vitest 测试套件覆盖单元测试、集成测试、回归测试和初步测试。 **[test-spec-3.md](test-spec-3.md) 是当前版本 (v0.7.0) 的权威文档**;[test-spec.md](test-spec.md) (v1) 和 [test-spec-2.md](test-spec-2.md) (v2) 仍然保存在代码库中,作为设计演进的历史记录。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcptoolshop/claude-synergy",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Local mirror of Anthropic product changelogs + curated cross-product synergies. So the LLM agent inside the harness knows what the harness can do.",
5
5
  "type": "module",
6
6
  "exports": {