@mcptoolshop/claude-synergy 0.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +132 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.es.md +342 -0
- package/README.fr.md +342 -0
- package/README.hi.md +342 -0
- package/README.it.md +342 -0
- package/README.ja.md +342 -0
- package/README.md +337 -4
- package/README.pt-BR.md +342 -0
- package/README.zh.md +342 -0
- package/dist/chunk-HCIZPSW4.js +469 -0
- package/dist/chunk-YFGUTT22.js +754 -0
- package/dist/cli.js +2090 -0
- package/dist/fetch-playwright-HQ6OTMSQ.js +80 -0
- package/dist/ingest-3LJNQWS7.js +6 -0
- package/dist/mcp-server.js +497 -0
- package/package.json +81 -7
- package/products.yaml +456 -0
- package/schema-vec.sql +43 -0
- package/schema.sql +155 -0
- package/synergies/01-skill-portability.md +33 -0
- package/synergies/02-mcp-server-portability.md +33 -0
- package/synergies/03-design-to-code-bundle.md +33 -0
- package/synergies/04-computer-use-cross-surface.md +33 -0
- package/synergies/05-ollama-cost-shifting.md +36 -0
- package/synergies/06-agent-sdk-graduation.md +34 -0
- package/synergies/07-code-review-in-ci.md +33 -0
- package/synergies/08-universal-skill-md-format.md +46 -0
- package/synergies/09-mcp-across-seven-surfaces.md +48 -0
- package/synergies/10-anthropic-byok-across-surfaces.md +46 -0
- package/synergies/11-claude-code-orchestrates-aider.md +52 -0
- package/synergies/12-mcp-config-format-gotcha.md +60 -0
- package/synergies/INDEX.md +47 -0
package/README.fr.md
ADDED
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center"><img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/claude-synergy/readme.png" alt="Claude Synergy" width="400"></p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml"><img src="https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml/badge.svg" alt="tests"></a>
|
|
9
|
+
<a href="https://www.npmjs.com/package/@mcptoolshop/claude-synergy"><img src="https://img.shields.io/npm/v/@mcptoolshop/claude-synergy" alt="npm"></a>
|
|
10
|
+
<a href="#license"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/claude-synergy/"><img src="https://img.shields.io/badge/landing%20page-live-brightgreen" alt="landing page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
Un miroir local et consultable de tous les journaux de modifications d'Anthropic et des outils de développement d'IA associés, ainsi qu'une couche **Synergy** organisée décrivant les flux de travail inter-produits, afin que l'agent LLM intégré à l'outil sache ce que l'outil peut faire.
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
$ hk query redact
|
|
18
|
+
2026-05-11 anthropic-cli@1.7.1 [changed] redact api-key headers in debug logs
|
|
19
|
+
2026-05-11 anthropic-sdk-java@2.31.0 [changed] redact api-key headers in debug logs
|
|
20
|
+
2026-05-11 anthropic-sdk-go@1.42.0 [changed] redact api-key headers in debug logs
|
|
21
|
+
2026-05-07 anthropic-sdk-typescript@0.95.1 [changed] redact api-key headers in debug logs
|
|
22
|
+
|
|
23
|
+
4 results
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Une seule requête FTS révèle une correction de sécurité coordonnée entre les SDK qui n'est signalée par aucun journal de modifications individuel comme une CVE. C'est la démonstration clé : des schémas émergent lorsque tous les journaux de modifications sont côte à côte.
|
|
28
|
+
|
|
29
|
+
Repo: [github.com/mcp-tool-shop-org/claude-synergy](https://github.com/mcp-tool-shop-org/claude-synergy)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Le problème
|
|
34
|
+
|
|
35
|
+
Claude Code CLI est publié quotidiennement. L'API Claude est publiée presque aussi souvent. Les SDK sont publiés à chaque nouvelle version de l'CLI. Claude Design, Cowork, Chat et Mobile sont intégrés dans le centre d'aide unifié. L'écosystème MCP publie environ 200 à 300 nouveaux serveurs par semaine. De plus, il existe 7 plateformes majeures d'outils de développement d'IA (Cursor, Aider, Continue, Copilot, Cody, Windsurf), chacune publiant ses propres journaux de modifications selon son propre rythme.
|
|
36
|
+
|
|
37
|
+
L'agent LLM intégré à l'un de ces outils a une date de fin de formation fixe. L'écart se creuse chaque jour. Des fonctionnalités sont publiées dont l'agent ignore l'existence. Des bogues sont corrigés, mais l'agent continue de les contourner. Des variables d'environnement et des indicateurs sont ajoutés que l'agent ne suggère jamais. Les flux de travail inter-produits qui combinent plusieurs plateformes restent découverts.
|
|
38
|
+
|
|
39
|
+
**Ce dépôt comble ce fossé.** La section Synergy en fait un produit plutôt qu'un simple miroir.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Ce qui se trouve ici
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
claude-synergy/
|
|
47
|
+
├── products/ # 44 product directories (1,186 release files)
|
|
48
|
+
│ ├── claude-code/ # Anthropic CLI — 117 releases
|
|
49
|
+
│ ├── claude-agent-sdk-{python,typescript}/ # Agent SDKs
|
|
50
|
+
│ ├── anthropic-sdk-{python,typescript,go,java,csharp,ruby,php}/ # 7 language SDKs
|
|
51
|
+
│ ├── claude-api/ # Platform release notes
|
|
52
|
+
│ ├── anthropic-apps/ # Design / Cowork / Chat / Mobile (Help Center feed)
|
|
53
|
+
│ ├── claude-code-action/ # GitHub Action
|
|
54
|
+
│ ├── anthropic-cli/ # `ant` CLI
|
|
55
|
+
│ ├── mcp-{python,typescript,go,java,csharp,kotlin,ruby,swift,rust,php}-sdk/
|
|
56
|
+
│ ├── mcp-{spec,inspector,registry,mcpb,conformance}/
|
|
57
|
+
│ ├── cursor/ # RSS feed
|
|
58
|
+
│ ├── aider/ # raw HISTORY.md
|
|
59
|
+
│ ├── continue-{dev,cli}/ # GH releases
|
|
60
|
+
│ ├── cody-enterprise/ # filtered Sourcegraph RSS
|
|
61
|
+
│ ├── github-copilot/ # HTML scrape (github.blog)
|
|
62
|
+
│ ├── vscode-copilot-chat/ # HTML scrape (code.visualstudio.com)
|
|
63
|
+
│ ├── windsurf/ # Playwright fetcher (CSR-only changelog)
|
|
64
|
+
│ ├── skills/ # Anthropic Skills catalog
|
|
65
|
+
│ └── plugins-{official,community,knowledge-work}/ # Plugin marketplaces
|
|
66
|
+
├── synergies/ # 12 curated cross-product workflows
|
|
67
|
+
├── src/ # TypeScript implementation
|
|
68
|
+
├── test/ # 382 tests (unit, integration, regression, smoke)
|
|
69
|
+
├── data/claude-synergy.db # SQLite database (created by `hk init`)
|
|
70
|
+
├── schema.sql # Tier 2a tables (products, releases, changes, entities, FTS5, …)
|
|
71
|
+
├── schema-vec.sql # Tier 2b tables (chunks, chunks_vec, chunks_fts)
|
|
72
|
+
├── SOURCES.md # 5-tier source landscape with fetch strategies
|
|
73
|
+
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Chiffres clés (à partir de la version 1.0.0) :** 44 produits / 1 186 fichiers de publication / 6 042 modifications / 1 225 entités / 12 synergies / 382 tests.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Statut — toutes les étapes ont été réalisées
|
|
81
|
+
|
|
82
|
+
| Étape | Statut | Ce qui s'y trouve |
|
|
83
|
+
|------|--------|--------------|
|
|
84
|
+
| **1 — corpus Markdown (bootstrap)** | ✅ réalisé | Study-swarm a alimenté 706 fichiers de publication de janvier à mai 2026 ; étendu à 1 186 par l'étape 4. |
|
|
85
|
+
| **2a — SQLite + FTS5 + CLI** | ✅ réalisé | CLI `hk` ; 15 sous-commandes ; ingestion inférieure à 300 ms. |
|
|
86
|
+
| **2b — sqlite-vec + récupération contextuelle** | ✅ réalisé | Fournisseur adaptable (aucun/structuré/ollama/claude-haiku contexte × ollama/voyage embed × aucun/ollama-judge/voyage/cohere rerank). |
|
|
87
|
+
| **3 — synchronisation + serveur MCP** | ✅ réalisé | `hk fetch / sync / seed-markers` ; `claude-synergy-mcp` expose 8 outils via stdio. |
|
|
88
|
+
| **4a — extension au-delà d'Anthropic** | ✅ réalisé | +15 SDK MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtré). |
|
|
89
|
+
| **4b — récupérateur HTML** | ✅ réalisé | GitHub Copilot + VS Code Chat (Windsurf nécessite Playwright — v0.7). |
|
|
90
|
+
| **4c — ingestion HTML→Markdown avec turndown** | ✅ réalisé | Les corps HTML (Copilot/VS Code/Cursor) génèrent désormais des lignes individuelles pour FTS5 + l'extraction d'entités. |
|
|
91
|
+
| **4d — Playwright + registre MCP + configuration YAML** | ✅ réalisé | Windsurf via Playwright ; Smithery + registre MCP officiel comme catalogues de l'étape 4 ; les produits sont regroupés dans `products.yaml`. |
|
|
92
|
+
|
|
93
|
+
Feuille de route pour la version 0.8+ : consultable dans [URGENT_FINDINGS.md](URGENT_FINDINGS.md) et les problèmes.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Sécurité et modèle de données
|
|
98
|
+
|
|
99
|
+
Cet outil fonctionne localement. **Données concernées :** une base de données SQLite dérivée et des fichiers de publication au format Markdown, tous pouvant être recréés. **Réseau :** uniquement des connexions HTTPS sortantes lorsque vous exécutez `hk fetch`/`hk sync` (API GitHub, flux RSS, pages de modifications, registres MCP) ou `hk embed` avec un fournisseur distant (Voyage, Cohere). **Secrets :** lit les variables d'environnement `GITHUB_TOKEN`, `VOYAGE_API_KEY`, `COHERE_API_KEY`, `ANTHROPIC_API_KEY` — jamais enregistrées, jamais stockées sur le disque. **Aucune télémétrie.** Consultez [SECURITY.md](SECURITY.md) pour connaître la politique de signalement.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Installation
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
git clone https://github.com/mcp-tool-shop-org/claude-synergy
|
|
107
|
+
cd claude-synergy
|
|
108
|
+
pnpm install
|
|
109
|
+
pnpm build # produces dist/cli.js + dist/mcp-server.js
|
|
110
|
+
npm link # makes `hk` and `claude-synergy-mcp` available globally
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Pour le développement sans compilation, utilisez `npx tsx src/cli.ts ...` directement. **Particularité de pnpm 10 :** `pnpm dev` ignore les arguments de la CLI après `--` ; utilisez `npx tsx` pour le développement.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Interface CLI — 15 commandes
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
# DB lifecycle
|
|
121
|
+
hk init # create DB with schema
|
|
122
|
+
hk ingest # parse products/*/releases/*.md → DB (idempotent)
|
|
123
|
+
hk embed # generate chunks + embeddings (sqlite-vec)
|
|
124
|
+
hk fetch [--product X] # incremental pull from sources
|
|
125
|
+
hk sync # combined fetch → ingest → embed (cron-friendly)
|
|
126
|
+
hk seed-markers # one-time setup after initial corpus
|
|
127
|
+
|
|
128
|
+
# Search
|
|
129
|
+
hk query "managed agents" # FTS5 keyword search
|
|
130
|
+
hk hybrid "credential exfiltration" # FTS5 + vec hybrid via RRF (+ optional --rerank)
|
|
131
|
+
|
|
132
|
+
# Entity lookups
|
|
133
|
+
hk env-var CLAUDE_CODE_WORKFLOWS # when introduced + history
|
|
134
|
+
hk command code-review # slash command + rename history
|
|
135
|
+
hk model claude-opus-4-7 # model launch + mentions across products
|
|
136
|
+
hk cve CVE-2025-66414 # CVE references in corpus
|
|
137
|
+
|
|
138
|
+
# Browsing
|
|
139
|
+
hk latest [--product X] [--limit N] # recent releases
|
|
140
|
+
hk products # list all 44 with counts
|
|
141
|
+
hk top env_var # most-mentioned by entity type
|
|
142
|
+
# (env_var, slash_command, cli_option,
|
|
143
|
+
# model_id, beta_header, cve, ghsa,
|
|
144
|
+
# hook_event, setting_key)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Exemples de flux de travail
|
|
150
|
+
|
|
151
|
+
**Déterminer quand une variable d'environnement Claude Code a été introduite :**
|
|
152
|
+
```
|
|
153
|
+
$ hk env-var CLAUDE_CODE_WORKFLOWS
|
|
154
|
+
env var CLAUDE_CODE_WORKFLOWS — 1 mention:
|
|
155
|
+
|
|
156
|
+
2026-05-21 claude-code@2.1.147 [added]
|
|
157
|
+
Added the `Workflow` tool for deterministic multi-agent orchestration.
|
|
158
|
+
It is off by default — set `CLAUDE_CODE_WORKFLOWS=1` to enable
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Suivre les modifications incompatibles entre les différentes SDK :**
|
|
162
|
+
```
|
|
163
|
+
$ hk query TodoWrite --limit 5
|
|
164
|
+
2026-05-15 claude-agent-sdk-python@0.2.82 [breaking] Headless and SDK sessions now use Task tools...
|
|
165
|
+
2026-05-14 claude-agent-sdk-typescript@0.3.142 [breaking] Headless and SDK sessions now use Task tools...
|
|
166
|
+
2026-05-08 claude-agent-sdk-typescript@0.2.136 [deprecated] Deprecated TodoWrite tool...
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Planifier une migration de modèle :**
|
|
170
|
+
```
|
|
171
|
+
$ hk model claude-opus-4-20250514
|
|
172
|
+
model id claude-opus-4-20250514 — 2 mentions:
|
|
173
|
+
|
|
174
|
+
2026-04-14 anthropic-sdk-python@0.94.0 [deprecated]
|
|
175
|
+
Deprecation of the Claude Sonnet 4 model and the Claude Opus 4 model,
|
|
176
|
+
with retirement on the Claude API scheduled for June 15, 2026...
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Recherche sémantique sur l'ensemble du corpus :**
|
|
180
|
+
```
|
|
181
|
+
$ hk hybrid "credential exfiltration" --limit 3
|
|
182
|
+
2026-03-25 claude-code@2.1.83 [added] vec#5 rrf=0.0154
|
|
183
|
+
Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and
|
|
184
|
+
cloud provider credentials from subprocess environments...
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
La requête ne contient jamais "env_scrub" ; le système le détecte par similarité sémantique. La recherche FTS5 classique ne le trouve pas du tout.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Serveur MCP : donnez à vos agents accès à ce corpus
|
|
192
|
+
|
|
193
|
+
`claude-synergy-mcp` expose 8 outils via le flux standard. Connectez-vous à Claude Code (ou à n'importe quel hôte MCP) via `~/.claude/.mcp.json` ou le fichier `.mcp.json` de votre projet :
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"mcpServers": {
|
|
198
|
+
"claude-synergy": {
|
|
199
|
+
"command": "claude-synergy-mcp",
|
|
200
|
+
"env": {
|
|
201
|
+
"CLAUDE_SYNERGY_DB": "/path/to/claude-synergy/data/claude-synergy.db"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Pour le fichier `.vscode/mcp.json` de GitHub Copilot, utilisez le wrapper `servers` au lieu de `mcpServers` (voir [synergy 12](synergies/12-mcp-config-format-gotcha.md)).
|
|
209
|
+
|
|
210
|
+
Outils exposés :
|
|
211
|
+
|
|
212
|
+
| Outil | Fonctionnalité |
|
|
213
|
+
|---|---|
|
|
214
|
+
| `search` | FTS5 + recherche vectorielle ; réordonnancement optionnel. Mode par défaut pour les requêtes en langage naturel. |
|
|
215
|
+
| `lookup_entity` | Historique précis des entités : variables d'environnement, commandes, identifiants de modèles, CVE, etc. |
|
|
216
|
+
| `latest_releases` | Dernières versions disponibles pour les différents produits (ou un seul). |
|
|
217
|
+
| `get_release` | Contenu complet d'une version. |
|
|
218
|
+
| `list_products` | Énumération avec nombre d'occurrences + dernière version. |
|
|
219
|
+
| `top_entities` | Entités les plus mentionnées par type. |
|
|
220
|
+
| `list_synergies` | Flux de travail inter-produits sélectionnés. |
|
|
221
|
+
| `read_synergy` | Texte intégral d'un fichier de synergie. |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Sources : 5 niveaux, 6 stratégies de récupération
|
|
226
|
+
|
|
227
|
+
Vue d'ensemble complète dans [SOURCES.md](SOURCES.md).
|
|
228
|
+
|
|
229
|
+
- **Niveau 1 (Dépôts GitHub)** — `gh api repos/<owner>/<repo>/releases` pour 22 produits, y compris les SDK Anthropic (7 langages), les SDK Agent (2), l'interface de ligne de commande ant, claude-code-action, claude-code-security-review, et 15 SDK de l'écosystème MCP.
|
|
230
|
+
- **Niveau 2 (Markdown brut)** — `anthropics/claude-code/CHANGELOG.md` + `Aider-AI/aider/HISTORY.md`
|
|
231
|
+
- **Niveau 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtré), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`
|
|
232
|
+
- **Niveau 4 (Catalogue)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`
|
|
233
|
+
- **Niveau 5 (Conseils)** — Compte X `@ClaudeCodeLog` ; miroir de changelog de marckrenn.
|
|
234
|
+
|
|
235
|
+
Stratégies de récupération : `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nouveau produit = une entrée dans `products.yaml`.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Synergies : ce qui est débloqué
|
|
240
|
+
|
|
241
|
+
12 flux de travail inter-produits sélectionnés. Chacun décrit un modèle de composition, le déclencheur qui le rend pertinent et les preuves de changelog qui le rendent possible. Exemples :
|
|
242
|
+
|
|
243
|
+
- **08 — Format SKILL.md universel** (Code + Cursor + Codex) : un seul auteur de compétence, trois agents le lisent.
|
|
244
|
+
- **09 — MCP sur sept plateformes** (Code + Cursor + Continue + Copilot + Windsurf + Cody + API) : un seul binaire, tous les agents.
|
|
245
|
+
- **10 — Anthropic BYOK sur les plateformes** : une seule clé API alimente Claude dans 7 éditeurs avec une facturation unifiée.
|
|
246
|
+
- **11 — Claude Code orchestre Aider** : déplace les modifications importantes vers un modèle moins coûteux, tandis que Claude planifie.
|
|
247
|
+
- **12 — Piège du format de configuration MCP** : Copilot utilise `servers` ; tout le monde utilise `mcpServers`.
|
|
248
|
+
|
|
249
|
+
Index complet dans [synergies/INDEX.md](synergies/INDEX.md).
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Tests
|
|
254
|
+
|
|
255
|
+
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.
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
pnpm test # unit + integration + regression (~16s, 382 tests)
|
|
259
|
+
pnpm test:watch # interactive
|
|
260
|
+
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
261
|
+
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Structure :
|
|
265
|
+
|
|
266
|
+
| Dossier | Ce qu'il couvre |
|
|
267
|
+
|-----|----------------|
|
|
268
|
+
| `test/unit/` | par module — extraction, ingestion, requête, base de données, intégration, recherche vectorielle, récupération + tous les fournisseurs + récupération-rss/changelog/html + récupération-mcp-registry + récupération-playwright + configuration des produits. |
|
|
269
|
+
| `test/integration/` | de bout en bout — pipeline, synchronisation, serveur MCP (JSON-RPC via le flux standard), interface de ligne de commande. |
|
|
270
|
+
| `test/regression/` | §8.1–§8.18 : chaque section protège contre un bug réel corrigé pendant le développement. |
|
|
271
|
+
| `test/smoke/` | Test complet sur l'ensemble des fichiers (1 143 fichiers) simulant les produits réels. |
|
|
272
|
+
| `test/fixtures/` | 3 produits factices + réponses HTTP simulées (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registre MCP officiel). |
|
|
273
|
+
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
274
|
+
|
|
275
|
+
**Pas de connexion réseau par défaut dans les tests** : le serveur HTTP est simulé via `vi.spyOn(global, 'fetch')`. Utilisation de SQLite réel dans des fichiers temporaires (et non `:memory:`) car les règles de chargement de l'extension `sqlite-vec` varient selon les versions, et le stockage sur disque est la méthode standard. Playwright est chargé via une importation dynamique et simulé via `vi.doMock('playwright', ...)` pour que les tests passent sans installation d'un navigateur réel.
|
|
276
|
+
|
|
277
|
+
CI : le fichier `.github/workflows/test.yml` exécute `pnpm test:coverage` à chaque commit et à chaque pull request.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Dépannage
|
|
282
|
+
|
|
283
|
+
**"Base de données verrouillée" ou erreurs WAL**
|
|
284
|
+
|
|
285
|
+
Un autre processus `hk` (ou un serveur MCP obsolète) maintient la base de données SQLite ouverte. Fermez les autres processus `hk`, puis réessayez. Si le problème persiste, vérifiez la présence de fichiers `-wal` ou `-shm` à côté de `data/claude-synergy.db` : ce sont des fichiers WAL normaux qui seront supprimés lorsque la dernière connexion sera fermée. Ne les supprimez pas tant qu'un autre processus a la base de données ouverte.
|
|
286
|
+
|
|
287
|
+
**"Extension sqlite-vec introuvable" / échec du chargement de sqlite-vec**
|
|
288
|
+
|
|
289
|
+
L'extension native `sqlite-vec` n'a pas pu être chargée. Causes courantes :
|
|
290
|
+
|
|
291
|
+
1. **Version de Node trop ancienne** : `claude-synergy` nécessite Node 22+. Vérifiez avec `node -v`.
|
|
292
|
+
2. **Module natif nécessitant une reconstruction** : exécutez `npm rebuild better-sqlite3` (ou `pnpm rebuild better-sqlite3`).
|
|
293
|
+
3. **Incompatibilité de la plateforme** : sur Windows/ARM, `better-sqlite3` nécessite un ensemble d'outils de compilation C++. Installez les [windows-build-tools](https://github.com/nicedoc/windows-build-tools) ou les outils de développement Visual Studio avec "Développement Desktop avec C++".
|
|
294
|
+
|
|
295
|
+
Note : `sqlite-vec` est facultatif. La recherche de mots-clés FTS5 (`hk query`) fonctionne sans lui. Seules les commandes `hk embed` et `hk hybrid` nécessitent l'extension vectorielle.
|
|
296
|
+
|
|
297
|
+
**"Synchronisation échouée pour le produit X" / erreurs de fetch**
|
|
298
|
+
|
|
299
|
+
Les commandes `hk fetch` et `hk sync` appellent des API externes. Causes courantes :
|
|
300
|
+
|
|
301
|
+
- **Limite de débit de GitHub** : la stratégie `gh-releases` utilise `gh api`, qui nécessite votre `GITHUB_TOKEN`. Les requêtes non authentifiées sont limitées à 60 requêtes par heure ; authentifiez-vous avec `gh auth login` ou définissez la variable d'environnement `GITHUB_TOKEN`.
|
|
302
|
+
- **Réseau / proxy** : les récupérateurs RSS et HTML utilisent `fetch()`. Vérifiez la connectivité et les éventuels paramètres de proxy d'entreprise (`HTTPS_PROXY`).
|
|
303
|
+
- **Produit inconnu** : `hk fetch --product foo` ne fonctionne que pour les produits répertoriés dans `products.yaml`. Exécutez `hk products` pour voir tous les noms disponibles.
|
|
304
|
+
|
|
305
|
+
La synchronisation est idempotente : il est sûr de la relancer après un échec partiel. Les versions déjà récupérées sont ignorées.
|
|
306
|
+
|
|
307
|
+
**"Fournisseur d'intégration non réactif"**
|
|
308
|
+
|
|
309
|
+
La commande `hk embed` appelle un service d'intégration externe :
|
|
310
|
+
|
|
311
|
+
- **Ollama (par défaut)** : assurez-vous qu'Ollama est en cours d'exécution (`ollama serve`) et que le modèle d'intégration est téléchargé (`ollama pull nomic-embed-text`).
|
|
312
|
+
- **Voyage** : définissez la variable d'environnement `VOYAGE_API_KEY`. Vérifiez votre clé API sur [dash.voyageai.com](https://dash.voyageai.com).
|
|
313
|
+
|
|
314
|
+
**Incompatibilité de version du schéma / base de données corrompue**
|
|
315
|
+
|
|
316
|
+
Si la base de données a été créée avec une version de schéma antérieure et que la migration échoue, ou si les données semblent incorrectes après un crash :
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
320
|
+
hk init
|
|
321
|
+
hk ingest
|
|
322
|
+
hk embed --context structured --embedding ollama # optional, for vector search
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
C'est sans danger : la base de données est un cache dérivé. Toutes les données sources se trouvent dans les fichiers `products/*/releases/*.md`.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Fichiers associés
|
|
330
|
+
|
|
331
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — Comment ajouter des produits, exécuter des tests, soumettre des demandes de modification (pull requests).
|
|
332
|
+
- [URGENT_FINDINGS.md](URGENT_FINDINGS.md) — 23 points d'action (vulnérabilités de sécurité, obsolescence des modèles, modifications majeures, pièges de configuration).
|
|
333
|
+
- [SOURCES.md](SOURCES.md) — Paysage des sources en 5 niveaux avec stratégies de récupération.
|
|
334
|
+
- [synergies/INDEX.md](synergies/INDEX.md) — 12 flux de travail inter-produits sélectionnés.
|
|
335
|
+
- [schema.sql](schema.sql) + [schema-vec.sql](schema-vec.sql) — Schémas SQLite et sqlite-vec.
|
|
336
|
+
- [test-spec-3.md](test-spec-3.md) (actuel) + [test-spec-2.md](test-spec-2.md), [test-spec.md](test-spec.md) (historique) — Spécifications de la suite de tests.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Licence
|
|
341
|
+
|
|
342
|
+
MIT. Créé par <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|