@mcptoolshop/claude-synergy 0.0.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +126 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.es.md +340 -0
- package/README.fr.md +340 -0
- package/README.hi.md +340 -0
- package/README.it.md +340 -0
- package/README.ja.md +340 -0
- package/README.md +337 -5
- package/README.pt-BR.md +340 -0
- package/README.zh.md +340 -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.it.md
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
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.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.md">English</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
|
+
Un mirror locale e interrogabile di tutte le modifiche apportate a Anthropic e agli strumenti di sviluppo AI correlati, oltre a un livello curato di **"Synergy"** che descrive i flussi di lavoro tra i diversi prodotti, in modo che l'agente LLM all'interno del sistema sappia cosa può fare il sistema stesso.
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
|
|
11
|
+
[](https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml) [](https://www.npmjs.com/package/@mcptoolshop/claude-synergy) [](#license) [](https://mcp-tool-shop-org.github.io/claude-synergy/)
|
|
12
|
+
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
$ hk query redact
|
|
17
|
+
2026-05-11 anthropic-cli@1.7.1 [changed] redact api-key headers in debug logs
|
|
18
|
+
2026-05-11 anthropic-sdk-java@2.31.0 [changed] redact api-key headers in debug logs
|
|
19
|
+
2026-05-11 anthropic-sdk-go@1.42.0 [changed] redact api-key headers in debug logs
|
|
20
|
+
2026-05-07 anthropic-sdk-typescript@0.95.1 [changed] redact api-key headers in debug logs
|
|
21
|
+
|
|
22
|
+
4 results
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Una singola query FTS (Full-Text Search) rivela una correzione di sicurezza coordinata tra diversi SDK che non era stata segnalata come CVE (Common Vulnerabilities and Exposures) in nessuna delle singole liste di modifiche.** Questo è l'esempio più efficace: emergono dei modelli quando tutte le liste di modifiche sono confrontate fianco a fianco.
|
|
26
|
+
|
|
27
|
+
Repository: [github.com/mcp-tool-shop-org/claude-synergy](https://github.com/mcp-tool-shop-org/claude-synergy)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Il problema
|
|
32
|
+
|
|
33
|
+
Claude Code CLI viene aggiornato quasi quotidianamente. L'API di Claude viene aggiornata con la stessa frequenza. Gli SDK vengono aggiornati ad ogni rilascio della CLI. Claude Design, Cowork, Chat e la versione mobile vengono aggiornati tramite un unico centro di assistenza. L'ecosistema MCP introduce circa 200-300 nuovi server ogni settimana. Inoltre, ci sono 7 principali piattaforme di sviluppo AI (Cursor, Aider, Continue, Copilot, Cody, Windsurf) che pubblicano le proprie liste di modifiche con cadenze diverse.
|
|
34
|
+
|
|
35
|
+
L'agente LLM all'interno di uno di questi sistemi ha un limite di aggiornamento delle informazioni. Questo divario si allarga ogni giorno. Vengono introdotte funzionalità di cui l'agente non è a conoscenza. Vengono corretti bug che l'agente continua a "aggirare". Vengono aggiunte variabili d'ambiente e flag che l'agente non suggerisce. I flussi di lavoro che coinvolgono più piattaforme rimangono sconosciuti.
|
|
36
|
+
|
|
37
|
+
**Questo repository colma questo divario.** La sezione "Synergy" lo trasforma in un prodotto, invece di essere solo un mirror.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Cosa c'è qui
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
claude-synergy/
|
|
45
|
+
├── products/ # 44 product directories (1,186 release files)
|
|
46
|
+
│ ├── claude-code/ # Anthropic CLI — 117 releases
|
|
47
|
+
│ ├── claude-agent-sdk-{python,typescript}/ # Agent SDKs
|
|
48
|
+
│ ├── anthropic-sdk-{python,typescript,go,java,csharp,ruby,php}/ # 7 language SDKs
|
|
49
|
+
│ ├── claude-api/ # Platform release notes
|
|
50
|
+
│ ├── anthropic-apps/ # Design / Cowork / Chat / Mobile (Help Center feed)
|
|
51
|
+
│ ├── claude-code-action/ # GitHub Action
|
|
52
|
+
│ ├── anthropic-cli/ # `ant` CLI
|
|
53
|
+
│ ├── mcp-{python,typescript,go,java,csharp,kotlin,ruby,swift,rust,php}-sdk/
|
|
54
|
+
│ ├── mcp-{spec,inspector,registry,mcpb,conformance}/
|
|
55
|
+
│ ├── cursor/ # RSS feed
|
|
56
|
+
│ ├── aider/ # raw HISTORY.md
|
|
57
|
+
│ ├── continue-{dev,cli}/ # GH releases
|
|
58
|
+
│ ├── cody-enterprise/ # filtered Sourcegraph RSS
|
|
59
|
+
│ ├── github-copilot/ # HTML scrape (github.blog)
|
|
60
|
+
│ ├── vscode-copilot-chat/ # HTML scrape (code.visualstudio.com)
|
|
61
|
+
│ ├── windsurf/ # Playwright fetcher (CSR-only changelog)
|
|
62
|
+
│ ├── skills/ # Anthropic Skills catalog
|
|
63
|
+
│ └── plugins-{official,community,knowledge-work}/ # Plugin marketplaces
|
|
64
|
+
├── synergies/ # 12 curated cross-product workflows
|
|
65
|
+
├── src/ # TypeScript implementation
|
|
66
|
+
├── test/ # 382 tests (unit, integration, regression, smoke)
|
|
67
|
+
├── data/claude-synergy.db # SQLite database (created by `hk init`)
|
|
68
|
+
├── schema.sql # Tier 2a tables (products, releases, changes, entities, FTS5, …)
|
|
69
|
+
├── schema-vec.sql # Tier 2b tables (chunks, chunks_vec, chunks_fts)
|
|
70
|
+
├── SOURCES.md # 5-tier source landscape with fetch strategies
|
|
71
|
+
└── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Dati aggiornati (alla versione v1.0.0):** 44 prodotti / 1.186 file di rilascio / 6.042 modifiche / 1.225 entità / 12 sinergie / 382 test.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Stato — tutti i livelli implementati
|
|
79
|
+
|
|
80
|
+
| Livello | Stato | Cosa c'è |
|
|
81
|
+
|------|--------|--------------|
|
|
82
|
+
| **1 — corpus in formato Markdown (bootstrap)** | ✅ implementato | Study-swarm ha inserito 706 file di rilascio da gennaio a maggio 2026; ampliato a 1.186 con il livello 4. |
|
|
83
|
+
| **2a — SQLite + FTS5 + CLI** | ✅ implementato | CLI `hk`; 15 sottocomandi; ingestione inferiore a 300ms. |
|
|
84
|
+
| **2b — sqlite-vec + Recupero contestuale** | ✅ implementato | Provider pluggable (nessuno/strutturato/ollama/claude-haiku contesto × ollama/voyage embed × nessuno/ollama-judge/voyage/cohere rerank). |
|
|
85
|
+
| **3 — sincronizzazione + server MCP** | ✅ implementato | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` espone 8 strumenti tramite stdio. |
|
|
86
|
+
| **4a — estensione oltre Anthropic** | ✅ implementato | +15 SDK MCP, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtrato). |
|
|
87
|
+
| **4b — fetcher per l'estrazione da HTML** | ✅ implementato | GitHub Copilot + VS Code Chat (Windsurf richiede Playwright — v0.7). |
|
|
88
|
+
| **4c — ingestione da HTML a Markdown con turndown** | ✅ implementato | I corpi HTML (Copilot/VS Code/Cursor) ora generano righe separate per ogni elemento per FTS5 + estrazione di entità. |
|
|
89
|
+
| **4d — Playwright + registro MCP + configurazione YAML** | ✅ implementato | Windsurf tramite Playwright; Smithery + registro ufficiale MCP come cataloghi del livello 4; prodotti consolidati in `products.yaml`. |
|
|
90
|
+
|
|
91
|
+
Roadmap per la versione 0.8+: disponibile in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) e nella sezione issues.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Sicurezza e modello dei dati
|
|
96
|
+
|
|
97
|
+
Questo strumento viene eseguito localmente. **Dati utilizzati:** un database SQLite derivato e file di rilascio in formato Markdown, tutti ricostruibili. **Rete:** connessioni HTTPS in uscita solo quando si eseguono i comandi `hk fetch`/`hk sync` (API di GitHub, feed RSS, pagine di changelog, registri MCP) o `hk embed` con un provider remoto (Voyage, Cohere). **Segreti:** legge le variabili d'ambiente `GITHUB_TOKEN`, `VOYAGE_API_KEY`, `COHERE_API_KEY`, `ANTHROPIC_API_KEY` e non le registra né le memorizza su disco. **Nessuna telemetria.** Consultare il file [SECURITY.md](SECURITY.md) per le informazioni sulla politica di segnalazione.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Installazione
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
git clone https://github.com/mcp-tool-shop-org/claude-synergy
|
|
105
|
+
cd claude-synergy
|
|
106
|
+
pnpm install
|
|
107
|
+
pnpm build # produces dist/cli.js + dist/mcp-server.js
|
|
108
|
+
npm link # makes `hk` and `claude-synergy-mcp` available globally
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Per lo sviluppo senza compilazione, utilizzare direttamente `npx tsx src/cli.ts ...`. **Avviso pnpm 10:** `pnpm dev` ignora i flag della CLI dopo `--`; utilizzare `npx tsx` per lo sviluppo.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Interfaccia della CLI: 15 comandi
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
# DB lifecycle
|
|
119
|
+
hk init # create DB with schema
|
|
120
|
+
hk ingest # parse products/*/releases/*.md → DB (idempotent)
|
|
121
|
+
hk embed # generate chunks + embeddings (sqlite-vec)
|
|
122
|
+
hk fetch [--product X] # incremental pull from sources
|
|
123
|
+
hk sync # combined fetch → ingest → embed (cron-friendly)
|
|
124
|
+
hk seed-markers # one-time setup after initial corpus
|
|
125
|
+
|
|
126
|
+
# Search
|
|
127
|
+
hk query "managed agents" # FTS5 keyword search
|
|
128
|
+
hk hybrid "credential exfiltration" # FTS5 + vec hybrid via RRF (+ optional --rerank)
|
|
129
|
+
|
|
130
|
+
# Entity lookups
|
|
131
|
+
hk env-var CLAUDE_CODE_WORKFLOWS # when introduced + history
|
|
132
|
+
hk command code-review # slash command + rename history
|
|
133
|
+
hk model claude-opus-4-7 # model launch + mentions across products
|
|
134
|
+
hk cve CVE-2025-66414 # CVE references in corpus
|
|
135
|
+
|
|
136
|
+
# Browsing
|
|
137
|
+
hk latest [--product X] [--limit N] # recent releases
|
|
138
|
+
hk products # list all 44 with counts
|
|
139
|
+
hk top env_var # most-mentioned by entity type
|
|
140
|
+
# (env_var, slash_command, cli_option,
|
|
141
|
+
# model_id, beta_header, cve, ghsa,
|
|
142
|
+
# hook_event, setting_key)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Esempi di flussi di lavoro
|
|
148
|
+
|
|
149
|
+
**Trovare quando è stata introdotta una variabile d'ambiente Claude Code:**
|
|
150
|
+
```
|
|
151
|
+
$ hk env-var CLAUDE_CODE_WORKFLOWS
|
|
152
|
+
env var CLAUDE_CODE_WORKFLOWS — 1 mention:
|
|
153
|
+
|
|
154
|
+
2026-05-21 claude-code@2.1.147 [added]
|
|
155
|
+
Added the `Workflow` tool for deterministic multi-agent orchestration.
|
|
156
|
+
It is off by default — set `CLAUDE_CODE_WORKFLOWS=1` to enable
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Tracciare una modifica incompatibile tra SDK:**
|
|
160
|
+
```
|
|
161
|
+
$ hk query TodoWrite --limit 5
|
|
162
|
+
2026-05-15 claude-agent-sdk-python@0.2.82 [breaking] Headless and SDK sessions now use Task tools...
|
|
163
|
+
2026-05-14 claude-agent-sdk-typescript@0.3.142 [breaking] Headless and SDK sessions now use Task tools...
|
|
164
|
+
2026-05-08 claude-agent-sdk-typescript@0.2.136 [deprecated] Deprecated TodoWrite tool...
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Pianificare una migrazione di un modello:**
|
|
168
|
+
```
|
|
169
|
+
$ hk model claude-opus-4-20250514
|
|
170
|
+
model id claude-opus-4-20250514 — 2 mentions:
|
|
171
|
+
|
|
172
|
+
2026-04-14 anthropic-sdk-python@0.94.0 [deprecated]
|
|
173
|
+
Deprecation of the Claude Sonnet 4 model and the Claude Opus 4 model,
|
|
174
|
+
with retirement on the Claude API scheduled for June 15, 2026...
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Ricerca semantica su tutto il corpus:**
|
|
178
|
+
```
|
|
179
|
+
$ hk hybrid "credential exfiltration" --limit 3
|
|
180
|
+
2026-03-25 claude-code@2.1.83 [added] vec#5 rrf=0.0154
|
|
181
|
+
Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and
|
|
182
|
+
cloud provider credentials from subprocess environments...
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
La query non utilizza mai "env_scrub"; l'interfaccia utente lo presenta tramite somiglianza semantica. La ricerca FTS5 pura non lo trova affatto.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Server MCP: fornisce ai tuoi agenti l'accesso a questo corpus
|
|
190
|
+
|
|
191
|
+
`claude-synergy-mcp` espone 8 strumenti tramite stdin. Integra con Claude Code (o qualsiasi host MCP) tramite `~/.claude/.mcp.json` o il file `.mcp.json` del tuo progetto:
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"mcpServers": {
|
|
196
|
+
"claude-synergy": {
|
|
197
|
+
"command": "claude-synergy-mcp",
|
|
198
|
+
"env": {
|
|
199
|
+
"CLAUDE_SYNERGY_DB": "/path/to/claude-synergy/data/claude-synergy.db"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Per il file `.vscode/mcp.json` di GitHub Copilot, utilizzare il wrapper `servers` invece di `mcpServers` (vedere [synergy 12](synergies/12-mcp-config-format-gotcha.md)).
|
|
207
|
+
|
|
208
|
+
Strumenti esposti:
|
|
209
|
+
|
|
210
|
+
| Strumento | Scopo |
|
|
211
|
+
|---|---|
|
|
212
|
+
| `search` | FTS5 + ricerca vettoriale ibrida; opzionale riordinamento. Modalità predefinita per le query in linguaggio naturale. |
|
|
213
|
+
| `lookup_entity` | Cronologia esatta delle entità: variabili d'ambiente, comandi, ID dei modelli, CVE, ecc. |
|
|
214
|
+
| `latest_releases` | Rilasci recenti in tutti i prodotti (o in uno). |
|
|
215
|
+
| `get_release` | Contenuto completo di un rilascio. |
|
|
216
|
+
| `list_products` | Elenco con conteggi + ultima versione. |
|
|
217
|
+
| `top_entities` | Entità più menzionate per tipo. |
|
|
218
|
+
| `list_synergies` | Flussi di lavoro curati tra prodotti. |
|
|
219
|
+
| `read_synergy` | Testo completo di un file di sinergia. |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Fonti: 5 livelli, 6 strategie di acquisizione
|
|
224
|
+
|
|
225
|
+
Panoramica completa in [SOURCES.md](SOURCES.md).
|
|
226
|
+
|
|
227
|
+
- **Livello 1 (Rilasci di GitHub)** — `gh api repos/<owner>/<repo>/releases` per 22 prodotti, inclusi gli SDK di Anthropic (7 lingue), gli SDK per agenti (2), l'interfaccia a riga di comando ant, claude-code-action, claude-code-security-review e 15 SDK dell'ecosistema MCP.
|
|
228
|
+
- **Livello 2 (Markdown grezzo)** — `anthropics/claude-code/CHANGELOG.md` + `Aider-AI/aider/HISTORY.md`.
|
|
229
|
+
- **Livello 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtrato), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`.
|
|
230
|
+
- **Livello 4 (catalogo)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`.
|
|
231
|
+
- **Livello 5 (avvisi)** — Account X `@ClaudeCodeLog`; mirror del changelog di marckrenn.
|
|
232
|
+
|
|
233
|
+
Strategie di acquisizione: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. Nuovo prodotto = una voce in `products.yaml`.
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Sinergie: cosa viene sbloccato
|
|
238
|
+
|
|
239
|
+
12 flussi di lavoro curati tra prodotti. Ognuno descrive un modello di composizione, il trigger che lo rende la risposta corretta e la prova del changelog che lo rende possibile. Esempi:
|
|
240
|
+
|
|
241
|
+
- **08 — Formato SKILL universale .md** (Codice + Puntatore + Codex): un autore di competenze, tre agenti lo leggono.
|
|
242
|
+
- **09 — MCP su sette superfici** (Codice + Puntatore + Continua + Copilot + Windsurf + Cody + API): un binario, ogni agente.
|
|
243
|
+
- **10 — Anthropic BYOK su diverse superfici**: una chiave API alimenta Claude in 7 editor con fatturazione unificata.
|
|
244
|
+
- **11 — Claude Code orchestra Aider**: sposta le modifiche più pesanti a un modello economico, mentre Claude pianifica.
|
|
245
|
+
- **12 — Formato di configurazione MCP: attenzione!** Copilot utilizza `servers`; tutti gli altri utilizzano `mcpServers`.
|
|
246
|
+
|
|
247
|
+
Indice completo in [synergies/INDEX.md](synergies/INDEX.md).
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Test
|
|
252
|
+
|
|
253
|
+
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.
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
pnpm test # unit + integration + regression (~16s, 382 tests)
|
|
257
|
+
pnpm test:watch # interactive
|
|
258
|
+
pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
|
|
259
|
+
pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Layout:
|
|
263
|
+
|
|
264
|
+
| Directory | Cosa copre |
|
|
265
|
+
|-----|----------------|
|
|
266
|
+
| `test/unit/` | per-modulo — estrazione, acquisizione, query, database, incorporamento, ibrido, recupero + ogni provider + recupero-rss/changelog/html + recupero-mcp-registry + recupero-playwright + configurazione-prodotti |
|
|
267
|
+
| `test/integration/` | end-to-end — pipeline, sincronizzazione, server MCP (JSON-RPC tramite standard input/output), CLI |
|
|
268
|
+
| `test/regression/` | §8.1–§8.18 — ciascuno protegge da un bug reale corretto durante lo sviluppo. |
|
|
269
|
+
| `test/smoke/` | Test completo con l'intero corpus rispetto alla directory `products/` (1.143 file). |
|
|
270
|
+
| `test/fixtures/` | 3 prodotti fittizi + risposte HTTP simulate (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Registro MCP ufficiale). |
|
|
271
|
+
| `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
|
|
272
|
+
|
|
273
|
+
**Nessuna connessione di rete nei test per impostazione predefinita** — le chiamate HTTP ai provider sono simulate tramite `vi.spyOn(global, 'fetch')`. SQLite reale in file temporanei (non `:memory:`) perché la semantica di caricamento dell'estensione `sqlite-vec` varia tra le versioni e il percorso on-disk è quello canonico. Playwright viene caricato tramite importazione dinamica e simulato tramite `vi.doMock('playwright', ...)` in modo che i test passino senza l'installazione di un browser reale.
|
|
274
|
+
|
|
275
|
+
CI: `.github/workflows/test.yml` esegue `pnpm test:coverage` ad ogni commit e pull request.
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Risoluzione dei problemi
|
|
280
|
+
|
|
281
|
+
**"Database bloccato" o errori WAL**
|
|
282
|
+
|
|
283
|
+
Un altro processo `hk` (o un server MCP obsoleto) sta mantenendo il database SQLite aperto. Chiudere gli altri processi `hk`, quindi riprovare. Se il problema persiste, verificare la presenza di file `-wal` o `-shm` accanto a `data/claude-synergy.db`: si tratta di file normali in modalità WAL e verranno eliminati quando l'ultima connessione si chiuderà. Non eliminarli mentre un altro processo ha il database aperto.
|
|
284
|
+
|
|
285
|
+
**"Estensione sqlite-vec non trovata" / caricamento di sqlite-vec non riuscito**
|
|
286
|
+
|
|
287
|
+
L'estensione nativa `sqlite-vec` non è riuscita a caricarsi. Cause comuni:
|
|
288
|
+
|
|
289
|
+
1. **Versione di Node troppo vecchia** — `claude-synergy` richiede Node 22 o superiore. Verificare con `node -v`.
|
|
290
|
+
2. **Modulo nativo che deve essere ricostruito** — eseguire `npm rebuild better-sqlite3` (o `pnpm rebuild better-sqlite3`).
|
|
291
|
+
3. **Incompatibilità di piattaforma** — su Windows/ARM, `better-sqlite3` richiede una toolchain di compilazione C++. Installare gli [strumenti di compilazione di Windows](https://github.com/nicedoc/windows-build-tools) o gli strumenti di compilazione di Visual Studio con "Sviluppo desktop con C++".
|
|
292
|
+
|
|
293
|
+
Nota: `sqlite-vec` è opzionale. La ricerca di parole chiave FTS5 (`hk query`) funziona senza di essa. Solo `hk embed` e `hk hybrid` richiedono l'estensione vettoriale.
|
|
294
|
+
|
|
295
|
+
**"Sincronizzazione non riuscita per il prodotto X" / errori di recupero**
|
|
296
|
+
|
|
297
|
+
`hk fetch` e `hk sync` chiamano API esterne. Cause comuni:
|
|
298
|
+
|
|
299
|
+
- **Limite di richieste di GitHub:** la strategia `gh-releases` utilizza `gh api`, che a sua volta utilizza il tuo `GITHUB_TOKEN`. Le richieste non autenticate hanno un limite di 60 richieste all'ora; autenticati con `gh auth login` oppure imposta la variabile d'ambiente `GITHUB_TOKEN`.
|
|
300
|
+
- **Rete / proxy:** i servizi di recupero RSS e HTML utilizzano `fetch()`. Verifica la connettività e le eventuali impostazioni del proxy aziendale (`HTTPS_PROXY`).
|
|
301
|
+
- **Prodotto sconosciuto:** il comando `hk fetch --product foo` funziona solo per i prodotti elencati in `products.yaml`. Esegui `hk products` per visualizzare tutti i nomi disponibili.
|
|
302
|
+
|
|
303
|
+
La sincronizzazione è idempotente: è sicuro rieseguirla anche in caso di un errore parziale. Le release già scaricate vengono saltate.
|
|
304
|
+
|
|
305
|
+
**"Il provider di embedding non risponde"**
|
|
306
|
+
|
|
307
|
+
Il comando `hk embed` chiama un servizio esterno di embedding:
|
|
308
|
+
|
|
309
|
+
- **Ollama (predefinito):** assicurati che Ollama sia in esecuzione (`ollama serve`) e che il modello di embedding sia stato scaricato (`ollama pull nomic-embed-text`).
|
|
310
|
+
- **Voyage:** imposta la variabile d'ambiente `VOYAGE_API_KEY`. Controlla la tua chiave API su [dash.voyageai.com](https://dash.voyageai.com).
|
|
311
|
+
|
|
312
|
+
**Incompatibilità di versione dello schema / database corrotto**
|
|
313
|
+
|
|
314
|
+
Se il database è stato creato con una versione precedente dello schema e la migrazione fallisce, oppure se i dati appaiono errati dopo un crash:
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
|
|
318
|
+
hk init
|
|
319
|
+
hk ingest
|
|
320
|
+
hk embed --context structured --embedding ollama # optional, for vector search
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Questo non è un problema grave: il database è una cache derivata. Tutti i dati originali si trovano nei file `products/*/releases/*.md`.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## File correlati
|
|
328
|
+
|
|
329
|
+
- [CONTRIBUTING.md](CONTRIBUTING.md) — come aggiungere prodotti, eseguire test, inviare richieste di modifica (PR)
|
|
330
|
+
- [URGENT_FINDINGS.md](URGENT_FINDINGS.md) — 23 elementi che richiedono un'azione (vulnerabilità di sicurezza, modelli obsoleti, modifiche incompatibili, problemi di configurazione)
|
|
331
|
+
- [SOURCES.md](SOURCES.md) — panorama delle fonti a 5 livelli con strategie di recupero
|
|
332
|
+
- [synergies/INDEX.md](synergies/INDEX.md) — 12 flussi di lavoro trasversali curati
|
|
333
|
+
- [schema.sql](schema.sql) + [schema-vec.sql](schema-vec.sql) — schemi SQLite + sqlite-vec
|
|
334
|
+
- [test-spec-3.md](test-spec-3.md) (attuale) + [test-spec-2.md](test-spec-2.md), [test-spec.md](test-spec.md) (storici) — specifiche della suite di test
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Licenza
|
|
339
|
+
|
|
340
|
+
MIT. Creato da <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.
|