@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/README.md CHANGED
@@ -1,9 +1,341 @@
1
- # @mcptoolshop/claude-synergy
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.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
3
+ </p>
2
4
 
3
- Placeholder release. The real package is being finalized.
4
-
5
- Source + roadmap: <https://github.com/mcp-tool-shop-org/claude-synergy>
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
6
 
7
7
  A local, queryable mirror of every Anthropic + adjacent AI dev tool changelog — plus a curated **Synergy** layer describing cross-product workflows — so the LLM agent inside the harness knows what the harness can do.
8
8
 
9
- The first real release will publish via npm Trusted Publishing (OIDC) from GitHub Actions, with provenance.
9
+ <p align="center">
10
+
11
+ [![tests](https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml/badge.svg)](https://github.com/mcp-tool-shop-org/claude-synergy/actions/workflows/test.yml) [![npm](https://img.shields.io/npm/v/@mcptoolshop/claude-synergy)](https://www.npmjs.com/package/@mcptoolshop/claude-synergy) [![license](https://img.shields.io/badge/license-MIT-blue)](#license) [![landing page](https://img.shields.io/badge/landing%20page-live-brightgreen)](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
+
26
+ **A single FTS query surfaces a coordinated cross-SDK security fix that no individual changelog flagged as a CVE.** That's the killer demo: patterns emerge when every changelog is side-by-side.
27
+
28
+ Repo: [github.com/mcp-tool-shop-org/claude-synergy](https://github.com/mcp-tool-shop-org/claude-synergy)
29
+
30
+ ---
31
+
32
+ ## The problem
33
+
34
+ Claude Code CLI ships ~daily. Claude API ships almost as often. SDKs ship per-CLI-release. Claude Design, Cowork, Chat, and Mobile feed through the unified Help Center. The MCP ecosystem ships ~200-300 new servers per week. Plus there are 7 major AI dev tool surfaces (Cursor, Aider, Continue, Copilot, Cody, Windsurf) all shipping their own changelogs at their own cadences.
35
+
36
+ The LLM agent inside any one of these has a frozen training cutoff. The gap widens every day. Features ship that the agent doesn't know exist. Bugs get fixed that the agent still works around. Env vars and flags get added that the agent never suggests. Cross-product workflows that compose multiple surfaces remain undiscovered.
37
+
38
+ **This repo closes the gap.** The Synergy section makes it a product instead of a mirror.
39
+
40
+ ---
41
+
42
+ ## What's here
43
+
44
+ ```
45
+ claude-synergy/
46
+ ├── products/ # 44 product directories (1,186 release files)
47
+ │ ├── claude-code/ # Anthropic CLI — 117 releases
48
+ │ ├── claude-agent-sdk-{python,typescript}/ # Agent SDKs
49
+ │ ├── anthropic-sdk-{python,typescript,go,java,csharp,ruby,php}/ # 7 language SDKs
50
+ │ ├── claude-api/ # Platform release notes
51
+ │ ├── anthropic-apps/ # Design / Cowork / Chat / Mobile (Help Center feed)
52
+ │ ├── claude-code-action/ # GitHub Action
53
+ │ ├── anthropic-cli/ # `ant` CLI
54
+ │ ├── mcp-{python,typescript,go,java,csharp,kotlin,ruby,swift,rust,php}-sdk/
55
+ │ ├── mcp-{spec,inspector,registry,mcpb,conformance}/
56
+ │ ├── cursor/ # RSS feed
57
+ │ ├── aider/ # raw HISTORY.md
58
+ │ ├── continue-{dev,cli}/ # GH releases
59
+ │ ├── cody-enterprise/ # filtered Sourcegraph RSS
60
+ │ ├── github-copilot/ # HTML scrape (github.blog)
61
+ │ ├── vscode-copilot-chat/ # HTML scrape (code.visualstudio.com)
62
+ │ ├── windsurf/ # Playwright fetcher (CSR-only changelog)
63
+ │ ├── skills/ # Anthropic Skills catalog
64
+ │ └── plugins-{official,community,knowledge-work}/ # Plugin marketplaces
65
+ ├── synergies/ # 12 curated cross-product workflows
66
+ ├── src/ # TypeScript implementation
67
+ ├── test/ # 382 tests (unit, integration, regression, smoke)
68
+ ├── data/claude-synergy.db # SQLite database (created by `hk init`)
69
+ ├── schema.sql # Tier 2a tables (products, releases, changes, entities, FTS5, …)
70
+ ├── schema-vec.sql # Tier 2b tables (chunks, chunks_vec, chunks_fts)
71
+ ├── SOURCES.md # 5-tier source landscape with fetch strategies
72
+ └── URGENT_FINDINGS.md # 23 actionable items surfaced from the corpus
73
+ ```
74
+
75
+ **Live numbers (as of v1.0.0):** 44 products / 1,186 release files / 6,042 changes / 1,225 entities / 12 synergies / 382 tests.
76
+
77
+ ---
78
+
79
+ ## Status — all tiers shipped
80
+
81
+ | Tier | Status | What's there |
82
+ |------|--------|--------------|
83
+ | **1 — bootstrap (markdown corpus)** | ✅ shipped | Study-swarm seeded 706 release files Jan→May 2026; extended to 1,186 by Tier 4d |
84
+ | **2a — SQLite + FTS5 + CLI** | ✅ shipped | `hk` CLI; 15 subcommands; sub-300ms ingest |
85
+ | **2b — sqlite-vec + Contextual Retrieval** | ✅ shipped | Provider-pluggable (none/structured/ollama/claude-haiku context × ollama/voyage embed × none/ollama-judge/voyage/cohere rerank) |
86
+ | **3 — sync + MCP server** | ✅ shipped | `hk fetch / sync / seed-markers`; `claude-synergy-mcp` exposes 8 tools over stdio |
87
+ | **4a — extend beyond Anthropic** | ✅ shipped | +15 MCP SDKs, Cursor (RSS), Aider (HISTORY.md), Continue.dev, Cody Enterprise (RSS filtered) |
88
+ | **4b — HTML-scrape fetcher** | ✅ shipped | GitHub Copilot + VS Code Chat (Windsurf needs Playwright — v0.7) |
89
+ | **4c — turndown HTML→markdown ingest** | ✅ shipped | HTML bodies (Copilot/VS Code/Cursor) now produce per-bullet rows for FTS5 + entity extraction |
90
+ | **4d — Playwright + MCP registry + YAML config** | ✅ shipped | Windsurf via Playwright; Smithery + official MCP Registry as Tier-4 catalogs; products consolidated into `products.yaml` |
91
+
92
+ Roadmap for v0.8+: tracked in [URGENT_FINDINGS.md](URGENT_FINDINGS.md) and issues.
93
+
94
+ ---
95
+
96
+ ## Security & data model
97
+
98
+ This tool runs locally. **Data touched:** a derived SQLite database and markdown release files — all re-creatable. **Network:** outbound HTTPS only when you run `hk fetch`/`hk sync` (GitHub API, RSS feeds, changelog pages, MCP registries) or `hk embed` with a remote provider (Voyage, Cohere). **Secrets:** reads `GITHUB_TOKEN`, `VOYAGE_API_KEY`, `COHERE_API_KEY`, `ANTHROPIC_API_KEY` from env vars — never logged, never stored to disk. **No telemetry.** See [SECURITY.md](SECURITY.md) for reporting policy.
99
+
100
+ ---
101
+
102
+ ## Install
103
+
104
+ ```bash
105
+ git clone https://github.com/mcp-tool-shop-org/claude-synergy
106
+ cd claude-synergy
107
+ pnpm install
108
+ pnpm build # produces dist/cli.js + dist/mcp-server.js
109
+ npm link # makes `hk` and `claude-synergy-mcp` available globally
110
+ ```
111
+
112
+ For dev without building, use `npx tsx src/cli.ts ...` directly. **pnpm 10 quirk:** `pnpm dev` swallows CLI flags after `--`; use `npx tsx` for development.
113
+
114
+ ---
115
+
116
+ ## CLI surface — 15 commands
117
+
118
+ ```
119
+ # DB lifecycle
120
+ hk init # create DB with schema
121
+ hk ingest # parse products/*/releases/*.md → DB (idempotent)
122
+ hk embed # generate chunks + embeddings (sqlite-vec)
123
+ hk fetch [--product X] # incremental pull from sources
124
+ hk sync # combined fetch → ingest → embed (cron-friendly)
125
+ hk seed-markers # one-time setup after initial corpus
126
+
127
+ # Search
128
+ hk query "managed agents" # FTS5 keyword search
129
+ hk hybrid "credential exfiltration" # FTS5 + vec hybrid via RRF (+ optional --rerank)
130
+
131
+ # Entity lookups
132
+ hk env-var CLAUDE_CODE_WORKFLOWS # when introduced + history
133
+ hk command code-review # slash command + rename history
134
+ hk model claude-opus-4-7 # model launch + mentions across products
135
+ hk cve CVE-2025-66414 # CVE references in corpus
136
+
137
+ # Browsing
138
+ hk latest [--product X] [--limit N] # recent releases
139
+ hk products # list all 44 with counts
140
+ hk top env_var # most-mentioned by entity type
141
+ # (env_var, slash_command, cli_option,
142
+ # model_id, beta_header, cve, ghsa,
143
+ # hook_event, setting_key)
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Example workflows
149
+
150
+ **Find when a Claude Code env var was introduced:**
151
+ ```
152
+ $ hk env-var CLAUDE_CODE_WORKFLOWS
153
+ env var CLAUDE_CODE_WORKFLOWS — 1 mention:
154
+
155
+ 2026-05-21 claude-code@2.1.147 [added]
156
+ Added the `Workflow` tool for deterministic multi-agent orchestration.
157
+ It is off by default — set `CLAUDE_CODE_WORKFLOWS=1` to enable
158
+ ```
159
+
160
+ **Track a cross-SDK breaking change:**
161
+ ```
162
+ $ hk query TodoWrite --limit 5
163
+ 2026-05-15 claude-agent-sdk-python@0.2.82 [breaking] Headless and SDK sessions now use Task tools...
164
+ 2026-05-14 claude-agent-sdk-typescript@0.3.142 [breaking] Headless and SDK sessions now use Task tools...
165
+ 2026-05-08 claude-agent-sdk-typescript@0.2.136 [deprecated] Deprecated TodoWrite tool...
166
+ ```
167
+
168
+ **Plan a model migration:**
169
+ ```
170
+ $ hk model claude-opus-4-20250514
171
+ model id claude-opus-4-20250514 — 2 mentions:
172
+
173
+ 2026-04-14 anthropic-sdk-python@0.94.0 [deprecated]
174
+ Deprecation of the Claude Sonnet 4 model and the Claude Opus 4 model,
175
+ with retirement on the Claude API scheduled for June 15, 2026...
176
+ ```
177
+
178
+ **Semantic search across the whole corpus:**
179
+ ```
180
+ $ hk hybrid "credential exfiltration" --limit 3
181
+ 2026-03-25 claude-code@2.1.83 [added] vec#5 rrf=0.0154
182
+ Added `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1` to strip Anthropic and
183
+ cloud provider credentials from subprocess environments...
184
+ ```
185
+
186
+ The query never says "env_scrub" — vec surfaces it by semantic similarity. Pure FTS5 misses it entirely.
187
+
188
+ ---
189
+
190
+ ## MCP server — give your agents access to this corpus
191
+
192
+ `claude-synergy-mcp` exposes 8 tools over stdio. Wire into Claude Code (or any MCP host) via `~/.claude/.mcp.json` or your project's `.mcp.json`:
193
+
194
+ ```json
195
+ {
196
+ "mcpServers": {
197
+ "claude-synergy": {
198
+ "command": "claude-synergy-mcp",
199
+ "env": {
200
+ "CLAUDE_SYNERGY_DB": "/path/to/claude-synergy/data/claude-synergy.db"
201
+ }
202
+ }
203
+ }
204
+ }
205
+ ```
206
+
207
+ For GitHub Copilot's `.vscode/mcp.json`, use the `servers` wrapper instead of `mcpServers` (see [synergy 12](synergies/12-mcp-config-format-gotcha.md)).
208
+
209
+ Tools exposed:
210
+
211
+ | Tool | Purpose |
212
+ |---|---|
213
+ | `search` | Hybrid FTS5 + vec; optional rerank. Default mode for natural-language queries. |
214
+ | `lookup_entity` | Exact entity history: env vars, slash commands, model IDs, CVEs, etc. |
215
+ | `latest_releases` | Recent releases across products (or one) |
216
+ | `get_release` | Full content of one release |
217
+ | `list_products` | Enumeration with counts + latest version |
218
+ | `top_entities` | Most-mentioned entities by type |
219
+ | `list_synergies` | Curated cross-product workflows |
220
+ | `read_synergy` | Full text of one synergy file |
221
+
222
+ ---
223
+
224
+ ## Sources — 5 tiers, 6 fetcher strategies
225
+
226
+ Full landscape in [SOURCES.md](SOURCES.md).
227
+
228
+ - **Tier 1 (GitHub Releases)** — `gh api repos/<owner>/<repo>/releases` for 22 products including Anthropic SDKs (7 languages), Agent SDKs (2), ant CLI, claude-code-action, claude-code-security-review, and 15 MCP ecosystem SDKs
229
+ - **Tier 2 (raw markdown)** — `anthropics/claude-code/CHANGELOG.md` + `Aider-AI/aider/HISTORY.md`
230
+ - **Tier 3 (HTML / RSS)** — `platform.claude.com/docs/release-notes`, `support.claude.com/articles/12138966`, `cursor.com/changelog/rss.xml`, `sourcegraph.com/changelog/featured.rss` (filtered), `github.blog/changelog/label/copilot/`, `code.visualstudio.com/updates/v1_NNN`
231
+ - **Tier 4 (catalog)** — `anthropics/skills`, `claude-plugins-{official,community}`, `knowledge-work-plugins`
232
+ - **Tier 5 (advisory)** — `@ClaudeCodeLog` X account; marckrenn changelog mirror
233
+
234
+ Fetch strategies: `gh-releases | rss | raw-changelog | html-scrape | catalog | playwright`. New product = one entry in `products.yaml`.
235
+
236
+ ---
237
+
238
+ ## Synergies — what gets unlocked
239
+
240
+ 12 curated cross-product workflows. Each describes a composition pattern, the trigger that makes it the right answer, and the changelog evidence that enables it. Examples:
241
+
242
+ - **08 — Universal SKILL.md format** (Code + Cursor + Codex): one skill author, three agents read it
243
+ - **09 — MCP across seven surfaces** (Code + Cursor + Continue + Copilot + Windsurf + Cody + API): one binary, every agent
244
+ - **10 — Anthropic BYOK across surfaces**: one API key powers Claude in 7 editors with unified billing
245
+ - **11 — Claude Code orchestrates Aider**: cost-shift heavy edits to a cheap model while Claude plans
246
+ - **12 — MCP config format gotcha**: Copilot uses `servers`; everyone else uses `mcpServers`
247
+
248
+ Full index in [synergies/INDEX.md](synergies/INDEX.md).
249
+
250
+ ---
251
+
252
+ ## Testing
253
+
254
+ 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.
255
+
256
+ ```bash
257
+ pnpm test # unit + integration + regression (~16s, 382 tests)
258
+ pnpm test:watch # interactive
259
+ pnpm test:coverage # generate coverage/index.html (thresholds: 78/75/85/78)
260
+ pnpm test:smoke # opt-in full-corpus smoke (RUN_SMOKE=1)
261
+ ```
262
+
263
+ Layout:
264
+
265
+ | Dir | What it covers |
266
+ |-----|----------------|
267
+ | `test/unit/` | per-module — extract, ingest, query, db, embed, hybrid, fetch + every provider + fetch-rss/changelog/html + fetch-mcp-registry + fetch-playwright + products-config |
268
+ | `test/integration/` | end-to-end — pipeline, sync, MCP server (stdio JSON-RPC), CLI |
269
+ | `test/regression/` | §8.1–§8.18 — each protects against a real bug fixed during development |
270
+ | `test/smoke/` | opt-in full-corpus against real `products/` (1,143 files) |
271
+ | `test/fixtures/` | 3 fake products + mock HTTP responses (RSS / GH / Voyage / Cohere / Ollama / Anthropic / Smithery / Official MCP Registry) |
272
+ | `test/helpers/` | `temp-db.ts`, `fetch-mock.ts`, `mcp-client.ts`, `seed-corpus.ts`, `golden-vectors.ts`, `playwright-mock.ts`, `yaml-fixtures.ts` |
273
+
274
+ **No network in tests by default** — provider HTTP is mocked via `vi.spyOn(global, 'fetch')`. Real SQLite in temp files (not `:memory:`) because sqlite-vec extension load semantics differ across versions and on-disk is the canonical path. Playwright is loaded via dynamic import and mocked via `vi.doMock('playwright', ...)` so tests pass without a real browser install.
275
+
276
+ CI: `.github/workflows/test.yml` runs `pnpm test:coverage` on push and PR.
277
+
278
+ ---
279
+
280
+ ## Troubleshooting
281
+
282
+ **"Database locked" or WAL errors**
283
+
284
+ Another `hk` process (or a stale MCP server) is holding the SQLite database open. Close other `hk` processes, then retry. If the issue persists, check for a `-wal` or `-shm` file alongside `data/claude-synergy.db` — these are normal WAL-mode files and will be cleaned up when the last connection closes. Do not delete them while another process has the DB open.
285
+
286
+ **"sqlite-vec extension not found" / sqlite-vec load failed**
287
+
288
+ The `sqlite-vec` native extension failed to load. Common causes:
289
+
290
+ 1. **Node version too old** — `claude-synergy` requires Node 22+. Check with `node -v`.
291
+ 2. **Native module needs rebuild** — run `npm rebuild better-sqlite3` (or `pnpm rebuild better-sqlite3`).
292
+ 3. **Platform mismatch** — on Windows/ARM, `better-sqlite3` needs a C++ build toolchain. Install the [windows-build-tools](https://github.com/nicedoc/windows-build-tools) or Visual Studio Build Tools with "Desktop development with C++".
293
+
294
+ Note: `sqlite-vec` is optional. FTS5 keyword search (`hk query`) works without it. Only `hk embed` and `hk hybrid` require the vector extension.
295
+
296
+ **"Sync failed for product X" / fetch errors**
297
+
298
+ `hk fetch` and `hk sync` call external APIs. Common causes:
299
+
300
+ - **GitHub rate limit** — the `gh-releases` strategy shells out to `gh api`, which uses your `GITHUB_TOKEN`. Unauthenticated requests hit 60 req/hr; authenticate with `gh auth login` or set `GITHUB_TOKEN` in your environment.
301
+ - **Network / proxy** — RSS and HTML fetchers use `fetch()`. Check connectivity and any corporate proxy settings (`HTTPS_PROXY`).
302
+ - **Unknown product** — `hk fetch --product foo` only works for products listed in `products.yaml`. Run `hk products` to see all available names.
303
+
304
+ Sync is idempotent — safe to re-run after a partial failure. Already-fetched releases are skipped.
305
+
306
+ **"Embedding provider not responding"**
307
+
308
+ `hk embed` calls an external embedding service:
309
+
310
+ - **Ollama (default)** — ensure Ollama is running (`ollama serve`) and the embedding model is pulled (`ollama pull nomic-embed-text`).
311
+ - **Voyage** — set `VOYAGE_API_KEY` in your environment. Check your API key at [dash.voyageai.com](https://dash.voyageai.com).
312
+
313
+ **Schema version mismatch / corrupted database**
314
+
315
+ If the DB was created with an older schema version and migration fails, or if data looks wrong after a crash:
316
+
317
+ ```bash
318
+ rm data/claude-synergy.db data/claude-synergy.db-wal data/claude-synergy.db-shm
319
+ hk init
320
+ hk ingest
321
+ hk embed --context structured --embedding ollama # optional, for vector search
322
+ ```
323
+
324
+ This is safe — the DB is a derived cache. All source data lives in `products/*/releases/*.md` files.
325
+
326
+ ---
327
+
328
+ ## Related files
329
+
330
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — how to add products, run tests, submit PRs
331
+ - [URGENT_FINDINGS.md](URGENT_FINDINGS.md) — 23 actionable items (security CVEs, model retirements, breaking changes, config gotchas)
332
+ - [SOURCES.md](SOURCES.md) — 5-tier source landscape with fetch strategies
333
+ - [synergies/INDEX.md](synergies/INDEX.md) — 12 curated cross-product workflows
334
+ - [schema.sql](schema.sql) + [schema-vec.sql](schema-vec.sql) — SQLite + sqlite-vec schemas
335
+ - [test-spec-3.md](test-spec-3.md) (current) + [test-spec-2.md](test-spec-2.md), [test-spec.md](test-spec.md) (historical) — test suite specs
336
+
337
+ ---
338
+
339
+ ## License
340
+
341
+ MIT. Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>.