@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/products.yaml
ADDED
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
# Claude Synergy — products configuration
|
|
2
|
+
#
|
|
3
|
+
# Single source of truth for product metadata + fetcher dispatch. Loaded by
|
|
4
|
+
# src/products-config.ts; consumed by src/fetch.ts (TARGETS) + src/ingest.ts
|
|
5
|
+
# (PRODUCT_META). If this file is missing, both modules fall back to their
|
|
6
|
+
# hardcoded defaults (with a one-time warn to stderr).
|
|
7
|
+
#
|
|
8
|
+
# Adding a new product: append an entry here. No code change required as long
|
|
9
|
+
# as the fetcher 'type' matches an existing strategy (gh-releases | rss |
|
|
10
|
+
# raw-changelog | html-scrape | catalog | playwright).
|
|
11
|
+
#
|
|
12
|
+
# ─── Schema reference ──────────────────────────────────────────────────────
|
|
13
|
+
#
|
|
14
|
+
# Each entry under `products:` has these fields:
|
|
15
|
+
#
|
|
16
|
+
# REQUIRED:
|
|
17
|
+
# name string Product slug. Used as directory name + DB key.
|
|
18
|
+
# Must match ^[a-z0-9][a-z0-9-]*$ (lowercase
|
|
19
|
+
# alphanumeric + hyphens, no leading hyphen).
|
|
20
|
+
# display_name string Human-readable name shown in CLI output.
|
|
21
|
+
# tier integer Source reliability tier (1-5):
|
|
22
|
+
# 1 = Structured API (GitHub Releases) — highest fidelity
|
|
23
|
+
# 2 = Raw markdown changelog (CHANGELOG.md / HISTORY.md)
|
|
24
|
+
# 3 = HTML / RSS scrape (blogs, feed URLs)
|
|
25
|
+
# 4 = Catalog snapshot (not versioned releases)
|
|
26
|
+
# 5 = Advisory / manual (X accounts, mirrors)
|
|
27
|
+
# source_url string Canonical URL for the data source.
|
|
28
|
+
# fetch_strategy string Fetcher type label. Should match fetch.type when
|
|
29
|
+
# a fetch: block is present.
|
|
30
|
+
#
|
|
31
|
+
# OPTIONAL:
|
|
32
|
+
# notes string Free-text notes (e.g., platform requirements).
|
|
33
|
+
# fetch object Fetcher configuration. Omit if the product's
|
|
34
|
+
# corpus is seeded manually (no automated fetch).
|
|
35
|
+
#
|
|
36
|
+
# fetch: sub-schema (varies by fetch.type):
|
|
37
|
+
#
|
|
38
|
+
# type: gh-releases
|
|
39
|
+
# repo string REQUIRED. "owner/repo" (e.g., "anthropics/anthropic-sdk-python").
|
|
40
|
+
# multi_package boolean Optional. Set true for monorepos with scoped
|
|
41
|
+
# tags like "@scope/pkg@1.0.0" or "sdk-v1.0.0".
|
|
42
|
+
#
|
|
43
|
+
# type: rss
|
|
44
|
+
# url string REQUIRED. RSS 2.0 feed URL.
|
|
45
|
+
# title_filter string Optional. Regex (case-insensitive) to filter
|
|
46
|
+
# entries by title (e.g., "cody|sourcegraph").
|
|
47
|
+
#
|
|
48
|
+
# type: raw-changelog
|
|
49
|
+
# url string REQUIRED. Raw file URL (e.g., GitHub raw URL).
|
|
50
|
+
# parser string REQUIRED. Parser name. Currently: "aider-history".
|
|
51
|
+
#
|
|
52
|
+
# type: html-scrape
|
|
53
|
+
# parser string REQUIRED. Parser name. One of:
|
|
54
|
+
# "github-copilot-blog", "vscode-updates".
|
|
55
|
+
#
|
|
56
|
+
# type: playwright
|
|
57
|
+
# (no additional fields — currently hardcoded to Windsurf's CSR changelog)
|
|
58
|
+
#
|
|
59
|
+
# type: catalog
|
|
60
|
+
# catalog_type string REQUIRED. One of: "official-mcp-registry", "smithery".
|
|
61
|
+
# max_entries integer Optional. Cap on entries to fetch (default: all).
|
|
62
|
+
|
|
63
|
+
products:
|
|
64
|
+
|
|
65
|
+
# ── Tier 2 / Anthropic CHANGELOG.md ───────────────────────────────────────
|
|
66
|
+
- name: claude-code
|
|
67
|
+
display_name: Claude Code
|
|
68
|
+
tier: 2
|
|
69
|
+
source_url: https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
|
|
70
|
+
fetch_strategy: git-changelog
|
|
71
|
+
# No fetch: block — corpus seeded by initial study-swarm; CHANGELOG.md
|
|
72
|
+
# incremental sync deferred to a future phase.
|
|
73
|
+
|
|
74
|
+
# ── Tier 3 / HTML feeds ──────────────────────────────────────────────────
|
|
75
|
+
- name: claude-api
|
|
76
|
+
display_name: Claude API / Platform
|
|
77
|
+
tier: 3
|
|
78
|
+
source_url: https://platform.claude.com/docs/en/release-notes/overview
|
|
79
|
+
fetch_strategy: webfetch
|
|
80
|
+
# WebFetch-based; corpus seeded by initial swarm.
|
|
81
|
+
|
|
82
|
+
- name: anthropic-apps
|
|
83
|
+
display_name: Anthropic Apps (Design / Cowork / Chat / Mobile)
|
|
84
|
+
tier: 3
|
|
85
|
+
source_url: https://support.claude.com/en/articles/12138966-release-notes
|
|
86
|
+
fetch_strategy: webfetch
|
|
87
|
+
|
|
88
|
+
# ── Tier 1 / GitHub Releases — Anthropic SDKs ────────────────────────────
|
|
89
|
+
- name: claude-agent-sdk-python
|
|
90
|
+
display_name: Claude Agent SDK (Python)
|
|
91
|
+
tier: 1
|
|
92
|
+
source_url: https://github.com/anthropics/claude-agent-sdk-python
|
|
93
|
+
fetch_strategy: gh-releases
|
|
94
|
+
fetch:
|
|
95
|
+
type: gh-releases
|
|
96
|
+
repo: anthropics/claude-agent-sdk-python
|
|
97
|
+
|
|
98
|
+
- name: claude-agent-sdk-typescript
|
|
99
|
+
display_name: Claude Agent SDK (TypeScript)
|
|
100
|
+
tier: 1
|
|
101
|
+
source_url: https://github.com/anthropics/claude-agent-sdk-typescript
|
|
102
|
+
fetch_strategy: gh-releases
|
|
103
|
+
fetch:
|
|
104
|
+
type: gh-releases
|
|
105
|
+
repo: anthropics/claude-agent-sdk-typescript
|
|
106
|
+
|
|
107
|
+
- name: anthropic-cli
|
|
108
|
+
display_name: Anthropic CLI (ant)
|
|
109
|
+
tier: 1
|
|
110
|
+
source_url: https://github.com/anthropics/anthropic-cli
|
|
111
|
+
fetch_strategy: gh-releases
|
|
112
|
+
fetch:
|
|
113
|
+
type: gh-releases
|
|
114
|
+
repo: anthropics/anthropic-cli
|
|
115
|
+
|
|
116
|
+
- name: anthropic-sdk-python
|
|
117
|
+
display_name: Anthropic SDK (Python)
|
|
118
|
+
tier: 1
|
|
119
|
+
source_url: https://github.com/anthropics/anthropic-sdk-python
|
|
120
|
+
fetch_strategy: gh-releases
|
|
121
|
+
fetch:
|
|
122
|
+
type: gh-releases
|
|
123
|
+
repo: anthropics/anthropic-sdk-python
|
|
124
|
+
|
|
125
|
+
- name: anthropic-sdk-typescript
|
|
126
|
+
display_name: Anthropic SDK (TypeScript)
|
|
127
|
+
tier: 1
|
|
128
|
+
source_url: https://github.com/anthropics/anthropic-sdk-typescript
|
|
129
|
+
fetch_strategy: gh-releases
|
|
130
|
+
fetch:
|
|
131
|
+
type: gh-releases
|
|
132
|
+
repo: anthropics/anthropic-sdk-typescript
|
|
133
|
+
multi_package: true
|
|
134
|
+
|
|
135
|
+
- name: anthropic-sdk-go
|
|
136
|
+
display_name: Anthropic SDK (Go)
|
|
137
|
+
tier: 1
|
|
138
|
+
source_url: https://github.com/anthropics/anthropic-sdk-go
|
|
139
|
+
fetch_strategy: gh-releases
|
|
140
|
+
fetch:
|
|
141
|
+
type: gh-releases
|
|
142
|
+
repo: anthropics/anthropic-sdk-go
|
|
143
|
+
|
|
144
|
+
- name: anthropic-sdk-java
|
|
145
|
+
display_name: Anthropic SDK (Java)
|
|
146
|
+
tier: 1
|
|
147
|
+
source_url: https://github.com/anthropics/anthropic-sdk-java
|
|
148
|
+
fetch_strategy: gh-releases
|
|
149
|
+
fetch:
|
|
150
|
+
type: gh-releases
|
|
151
|
+
repo: anthropics/anthropic-sdk-java
|
|
152
|
+
|
|
153
|
+
- name: anthropic-sdk-ruby
|
|
154
|
+
display_name: Anthropic SDK (Ruby)
|
|
155
|
+
tier: 1
|
|
156
|
+
source_url: https://github.com/anthropics/anthropic-sdk-ruby
|
|
157
|
+
fetch_strategy: gh-releases
|
|
158
|
+
fetch:
|
|
159
|
+
type: gh-releases
|
|
160
|
+
repo: anthropics/anthropic-sdk-ruby
|
|
161
|
+
|
|
162
|
+
- name: anthropic-sdk-csharp
|
|
163
|
+
display_name: Anthropic SDK (C#)
|
|
164
|
+
tier: 1
|
|
165
|
+
source_url: https://github.com/anthropics/anthropic-sdk-csharp
|
|
166
|
+
fetch_strategy: gh-releases
|
|
167
|
+
fetch:
|
|
168
|
+
type: gh-releases
|
|
169
|
+
repo: anthropics/anthropic-sdk-csharp
|
|
170
|
+
multi_package: true
|
|
171
|
+
|
|
172
|
+
- name: anthropic-sdk-php
|
|
173
|
+
display_name: Anthropic SDK (PHP)
|
|
174
|
+
tier: 1
|
|
175
|
+
source_url: https://github.com/anthropics/anthropic-sdk-php
|
|
176
|
+
fetch_strategy: gh-releases
|
|
177
|
+
fetch:
|
|
178
|
+
type: gh-releases
|
|
179
|
+
repo: anthropics/anthropic-sdk-php
|
|
180
|
+
|
|
181
|
+
- name: claude-code-action
|
|
182
|
+
display_name: Claude Code Action (GitHub Action)
|
|
183
|
+
tier: 1
|
|
184
|
+
source_url: https://github.com/anthropics/claude-code-action
|
|
185
|
+
fetch_strategy: gh-releases
|
|
186
|
+
fetch:
|
|
187
|
+
type: gh-releases
|
|
188
|
+
repo: anthropics/claude-code-action
|
|
189
|
+
|
|
190
|
+
- name: claude-code-security-review
|
|
191
|
+
display_name: Claude Code Security Review (GitHub Action)
|
|
192
|
+
tier: 1
|
|
193
|
+
source_url: https://github.com/anthropics/claude-code-security-review
|
|
194
|
+
fetch_strategy: gh-releases
|
|
195
|
+
fetch:
|
|
196
|
+
type: gh-releases
|
|
197
|
+
repo: anthropics/claude-code-security-review
|
|
198
|
+
|
|
199
|
+
# ── Tier 4 / Catalog repos (Anthropic) ───────────────────────────────────
|
|
200
|
+
- name: skills
|
|
201
|
+
display_name: Anthropic Skills Catalog
|
|
202
|
+
tier: 4
|
|
203
|
+
source_url: https://github.com/anthropics/skills
|
|
204
|
+
fetch_strategy: git-snapshot
|
|
205
|
+
|
|
206
|
+
- name: plugins-official
|
|
207
|
+
display_name: Claude Plugins (Official)
|
|
208
|
+
tier: 4
|
|
209
|
+
source_url: https://github.com/anthropics/claude-plugins-official
|
|
210
|
+
fetch_strategy: git-snapshot
|
|
211
|
+
|
|
212
|
+
- name: plugins-community
|
|
213
|
+
display_name: Claude Plugins (Community)
|
|
214
|
+
tier: 4
|
|
215
|
+
source_url: https://github.com/anthropics/claude-plugins-community
|
|
216
|
+
fetch_strategy: git-snapshot
|
|
217
|
+
|
|
218
|
+
- name: plugins-knowledge-work
|
|
219
|
+
display_name: Knowledge Work Plugins (Cowork)
|
|
220
|
+
tier: 4
|
|
221
|
+
source_url: https://github.com/anthropics/knowledge-work-plugins
|
|
222
|
+
fetch_strategy: git-snapshot
|
|
223
|
+
|
|
224
|
+
# ── Tier 1 / MCP ecosystem SDKs ──────────────────────────────────────────
|
|
225
|
+
- name: mcp-python-sdk
|
|
226
|
+
display_name: MCP Python SDK
|
|
227
|
+
tier: 1
|
|
228
|
+
source_url: https://github.com/modelcontextprotocol/python-sdk
|
|
229
|
+
fetch_strategy: gh-releases
|
|
230
|
+
fetch:
|
|
231
|
+
type: gh-releases
|
|
232
|
+
repo: modelcontextprotocol/python-sdk
|
|
233
|
+
|
|
234
|
+
- name: mcp-typescript-sdk
|
|
235
|
+
display_name: MCP TypeScript SDK
|
|
236
|
+
tier: 1
|
|
237
|
+
source_url: https://github.com/modelcontextprotocol/typescript-sdk
|
|
238
|
+
fetch_strategy: gh-releases
|
|
239
|
+
fetch:
|
|
240
|
+
type: gh-releases
|
|
241
|
+
repo: modelcontextprotocol/typescript-sdk
|
|
242
|
+
multi_package: true
|
|
243
|
+
|
|
244
|
+
- name: mcp-go-sdk
|
|
245
|
+
display_name: MCP Go SDK
|
|
246
|
+
tier: 1
|
|
247
|
+
source_url: https://github.com/modelcontextprotocol/go-sdk
|
|
248
|
+
fetch_strategy: gh-releases
|
|
249
|
+
fetch:
|
|
250
|
+
type: gh-releases
|
|
251
|
+
repo: modelcontextprotocol/go-sdk
|
|
252
|
+
|
|
253
|
+
- name: mcp-java-sdk
|
|
254
|
+
display_name: MCP Java SDK
|
|
255
|
+
tier: 1
|
|
256
|
+
source_url: https://github.com/modelcontextprotocol/java-sdk
|
|
257
|
+
fetch_strategy: gh-releases
|
|
258
|
+
fetch:
|
|
259
|
+
type: gh-releases
|
|
260
|
+
repo: modelcontextprotocol/java-sdk
|
|
261
|
+
|
|
262
|
+
- name: mcp-csharp-sdk
|
|
263
|
+
display_name: MCP C# SDK
|
|
264
|
+
tier: 1
|
|
265
|
+
source_url: https://github.com/modelcontextprotocol/csharp-sdk
|
|
266
|
+
fetch_strategy: gh-releases
|
|
267
|
+
fetch:
|
|
268
|
+
type: gh-releases
|
|
269
|
+
repo: modelcontextprotocol/csharp-sdk
|
|
270
|
+
|
|
271
|
+
- name: mcp-kotlin-sdk
|
|
272
|
+
display_name: MCP Kotlin SDK
|
|
273
|
+
tier: 1
|
|
274
|
+
source_url: https://github.com/modelcontextprotocol/kotlin-sdk
|
|
275
|
+
fetch_strategy: gh-releases
|
|
276
|
+
fetch:
|
|
277
|
+
type: gh-releases
|
|
278
|
+
repo: modelcontextprotocol/kotlin-sdk
|
|
279
|
+
|
|
280
|
+
- name: mcp-ruby-sdk
|
|
281
|
+
display_name: MCP Ruby SDK
|
|
282
|
+
tier: 1
|
|
283
|
+
source_url: https://github.com/modelcontextprotocol/ruby-sdk
|
|
284
|
+
fetch_strategy: gh-releases
|
|
285
|
+
fetch:
|
|
286
|
+
type: gh-releases
|
|
287
|
+
repo: modelcontextprotocol/ruby-sdk
|
|
288
|
+
|
|
289
|
+
- name: mcp-swift-sdk
|
|
290
|
+
display_name: MCP Swift SDK
|
|
291
|
+
tier: 1
|
|
292
|
+
source_url: https://github.com/modelcontextprotocol/swift-sdk
|
|
293
|
+
fetch_strategy: gh-releases
|
|
294
|
+
fetch:
|
|
295
|
+
type: gh-releases
|
|
296
|
+
repo: modelcontextprotocol/swift-sdk
|
|
297
|
+
|
|
298
|
+
- name: mcp-rust-sdk
|
|
299
|
+
display_name: MCP Rust SDK
|
|
300
|
+
tier: 1
|
|
301
|
+
source_url: https://github.com/modelcontextprotocol/rust-sdk
|
|
302
|
+
fetch_strategy: gh-releases
|
|
303
|
+
fetch:
|
|
304
|
+
type: gh-releases
|
|
305
|
+
repo: modelcontextprotocol/rust-sdk
|
|
306
|
+
|
|
307
|
+
- name: mcp-php-sdk
|
|
308
|
+
display_name: MCP PHP SDK
|
|
309
|
+
tier: 1
|
|
310
|
+
source_url: https://github.com/modelcontextprotocol/php-sdk
|
|
311
|
+
fetch_strategy: gh-releases
|
|
312
|
+
fetch:
|
|
313
|
+
type: gh-releases
|
|
314
|
+
repo: modelcontextprotocol/php-sdk
|
|
315
|
+
|
|
316
|
+
- name: mcp-spec
|
|
317
|
+
display_name: MCP Specification
|
|
318
|
+
tier: 1
|
|
319
|
+
source_url: https://github.com/modelcontextprotocol/modelcontextprotocol
|
|
320
|
+
fetch_strategy: gh-releases
|
|
321
|
+
fetch:
|
|
322
|
+
type: gh-releases
|
|
323
|
+
repo: modelcontextprotocol/modelcontextprotocol
|
|
324
|
+
|
|
325
|
+
- name: mcp-inspector
|
|
326
|
+
display_name: MCP Inspector
|
|
327
|
+
tier: 1
|
|
328
|
+
source_url: https://github.com/modelcontextprotocol/inspector
|
|
329
|
+
fetch_strategy: gh-releases
|
|
330
|
+
fetch:
|
|
331
|
+
type: gh-releases
|
|
332
|
+
repo: modelcontextprotocol/inspector
|
|
333
|
+
|
|
334
|
+
- name: mcp-registry
|
|
335
|
+
display_name: MCP Registry
|
|
336
|
+
tier: 1
|
|
337
|
+
source_url: https://github.com/modelcontextprotocol/registry
|
|
338
|
+
fetch_strategy: gh-releases
|
|
339
|
+
fetch:
|
|
340
|
+
type: gh-releases
|
|
341
|
+
repo: modelcontextprotocol/registry
|
|
342
|
+
|
|
343
|
+
- name: mcp-mcpb
|
|
344
|
+
display_name: MCP Bundle (mcpb)
|
|
345
|
+
tier: 1
|
|
346
|
+
source_url: https://github.com/modelcontextprotocol/mcpb
|
|
347
|
+
fetch_strategy: gh-releases
|
|
348
|
+
fetch:
|
|
349
|
+
type: gh-releases
|
|
350
|
+
repo: modelcontextprotocol/mcpb
|
|
351
|
+
|
|
352
|
+
- name: mcp-conformance
|
|
353
|
+
display_name: MCP Conformance
|
|
354
|
+
tier: 1
|
|
355
|
+
source_url: https://github.com/modelcontextprotocol/conformance
|
|
356
|
+
fetch_strategy: gh-releases
|
|
357
|
+
fetch:
|
|
358
|
+
type: gh-releases
|
|
359
|
+
repo: modelcontextprotocol/conformance
|
|
360
|
+
|
|
361
|
+
# ── Tier 4a / Non-Anthropic AI dev tools ─────────────────────────────────
|
|
362
|
+
- name: continue-dev
|
|
363
|
+
display_name: Continue.dev
|
|
364
|
+
tier: 1
|
|
365
|
+
source_url: https://github.com/continuedev/continue
|
|
366
|
+
fetch_strategy: gh-releases
|
|
367
|
+
fetch:
|
|
368
|
+
type: gh-releases
|
|
369
|
+
repo: continuedev/continue
|
|
370
|
+
multi_package: true
|
|
371
|
+
|
|
372
|
+
- name: continue-cli
|
|
373
|
+
display_name: Continue.dev CLI
|
|
374
|
+
tier: 1
|
|
375
|
+
source_url: https://github.com/continuedev/continue-cli
|
|
376
|
+
fetch_strategy: gh-releases
|
|
377
|
+
fetch:
|
|
378
|
+
type: gh-releases
|
|
379
|
+
repo: continuedev/continue-cli
|
|
380
|
+
|
|
381
|
+
- name: cursor
|
|
382
|
+
display_name: Cursor
|
|
383
|
+
tier: 3
|
|
384
|
+
source_url: https://cursor.com/changelog/rss.xml
|
|
385
|
+
fetch_strategy: rss
|
|
386
|
+
fetch:
|
|
387
|
+
type: rss
|
|
388
|
+
url: https://cursor.com/changelog/rss.xml
|
|
389
|
+
|
|
390
|
+
- name: cody-enterprise
|
|
391
|
+
display_name: Sourcegraph Cody Enterprise
|
|
392
|
+
tier: 3
|
|
393
|
+
source_url: https://sourcegraph.com/changelog/featured.rss
|
|
394
|
+
fetch_strategy: rss
|
|
395
|
+
fetch:
|
|
396
|
+
type: rss
|
|
397
|
+
url: https://sourcegraph.com/changelog/featured.rss
|
|
398
|
+
title_filter: 'cody|sourcegraph'
|
|
399
|
+
|
|
400
|
+
- name: aider
|
|
401
|
+
display_name: Aider
|
|
402
|
+
tier: 2
|
|
403
|
+
source_url: https://raw.githubusercontent.com/Aider-AI/aider/main/HISTORY.md
|
|
404
|
+
fetch_strategy: raw-changelog
|
|
405
|
+
fetch:
|
|
406
|
+
type: raw-changelog
|
|
407
|
+
url: https://raw.githubusercontent.com/Aider-AI/aider/main/HISTORY.md
|
|
408
|
+
parser: aider-history
|
|
409
|
+
|
|
410
|
+
# ── Tier 4b / HTML-scraped (Tier 4b) ─────────────────────────────────────
|
|
411
|
+
- name: github-copilot
|
|
412
|
+
display_name: GitHub Copilot
|
|
413
|
+
tier: 3
|
|
414
|
+
source_url: https://github.blog/changelog/label/copilot/
|
|
415
|
+
fetch_strategy: html-scrape
|
|
416
|
+
fetch:
|
|
417
|
+
type: html-scrape
|
|
418
|
+
parser: github-copilot-blog
|
|
419
|
+
|
|
420
|
+
- name: vscode-copilot-chat
|
|
421
|
+
display_name: VS Code Copilot Chat (editor)
|
|
422
|
+
tier: 3
|
|
423
|
+
source_url: https://code.visualstudio.com/updates/
|
|
424
|
+
fetch_strategy: html-scrape
|
|
425
|
+
fetch:
|
|
426
|
+
type: html-scrape
|
|
427
|
+
parser: vscode-updates
|
|
428
|
+
|
|
429
|
+
- name: windsurf
|
|
430
|
+
display_name: Windsurf (Cognition)
|
|
431
|
+
tier: 3
|
|
432
|
+
source_url: https://windsurf.com/changelog
|
|
433
|
+
fetch_strategy: playwright
|
|
434
|
+
fetch:
|
|
435
|
+
type: playwright
|
|
436
|
+
notes: "Client-rendered Next.js — requires Playwright (pnpm add -D playwright && npx playwright install chromium)"
|
|
437
|
+
|
|
438
|
+
# ── Tier 4 / MCP registry catalogs ───────────────────────────────────────
|
|
439
|
+
- name: mcp-registry-official
|
|
440
|
+
display_name: Official MCP Registry
|
|
441
|
+
tier: 4
|
|
442
|
+
source_url: https://registry.modelcontextprotocol.io
|
|
443
|
+
fetch_strategy: catalog
|
|
444
|
+
fetch:
|
|
445
|
+
type: catalog
|
|
446
|
+
catalog_type: official-mcp-registry
|
|
447
|
+
|
|
448
|
+
- name: mcp-registry-smithery
|
|
449
|
+
display_name: Smithery MCP Registry
|
|
450
|
+
tier: 4
|
|
451
|
+
source_url: https://registry.smithery.ai
|
|
452
|
+
fetch_strategy: catalog
|
|
453
|
+
fetch:
|
|
454
|
+
type: catalog
|
|
455
|
+
catalog_type: smithery
|
|
456
|
+
max_entries: 200
|
package/schema-vec.sql
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
-- Tier 2b — semantic layer (sqlite-vec + FTS5 over contextualized chunks)
|
|
2
|
+
-- Run after schema.sql. Tables here are independent of Tier 2a's changes_fts,
|
|
3
|
+
-- so naive FTS still works on the raw bullets while hybrid uses the contextualized layer.
|
|
4
|
+
--
|
|
5
|
+
-- Dimension: 768 (nomic-embed-text native; Voyage 3 truncatable via Matryoshka)
|
|
6
|
+
-- One row per change. Reranking deferred.
|
|
7
|
+
|
|
8
|
+
CREATE TABLE IF NOT EXISTS chunks (
|
|
9
|
+
id INTEGER PRIMARY KEY,
|
|
10
|
+
change_id INTEGER NOT NULL UNIQUE REFERENCES changes(id) ON DELETE CASCADE,
|
|
11
|
+
product TEXT NOT NULL,
|
|
12
|
+
release_version TEXT NOT NULL,
|
|
13
|
+
released_at DATE,
|
|
14
|
+
context_prefix TEXT NOT NULL,
|
|
15
|
+
original_text TEXT NOT NULL,
|
|
16
|
+
contextualized TEXT NOT NULL,
|
|
17
|
+
context_provider TEXT NOT NULL,
|
|
18
|
+
embedding_model TEXT NOT NULL,
|
|
19
|
+
embedded_at DATETIME NOT NULL
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_product ON chunks(product, released_at);
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_change ON chunks(change_id);
|
|
24
|
+
|
|
25
|
+
-- Vector storage (sqlite-vec extension required)
|
|
26
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS chunks_vec USING vec0(
|
|
27
|
+
embedding FLOAT[768]
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
-- FTS5 over the contextualized text (separate from changes_fts which indexes raw bullets)
|
|
31
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS chunks_fts USING fts5(
|
|
32
|
+
contextualized,
|
|
33
|
+
content='chunks',
|
|
34
|
+
content_rowid='id'
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
CREATE TRIGGER IF NOT EXISTS chunks_fts_insert AFTER INSERT ON chunks BEGIN
|
|
38
|
+
INSERT INTO chunks_fts(rowid, contextualized) VALUES (new.id, new.contextualized);
|
|
39
|
+
END;
|
|
40
|
+
|
|
41
|
+
CREATE TRIGGER IF NOT EXISTS chunks_fts_delete AFTER DELETE ON chunks BEGIN
|
|
42
|
+
INSERT INTO chunks_fts(chunks_fts, rowid, contextualized) VALUES('delete', old.id, old.contextualized);
|
|
43
|
+
END;
|
package/schema.sql
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
-- claude-synergy schema — local mirror of every Anthropic product's release notes
|
|
2
|
+
-- Forward-looking design; not yet implemented. See README.md for tier roadmap.
|
|
3
|
+
-- Run with: sqlite3 claude-synergy.db < schema.sql
|
|
4
|
+
|
|
5
|
+
-- ============================================================================
|
|
6
|
+
-- PRODUCTS
|
|
7
|
+
-- ============================================================================
|
|
8
|
+
-- One row per surface (Claude Code, Claude API, Claude Agent SDK Python, etc.)
|
|
9
|
+
|
|
10
|
+
CREATE TABLE products (
|
|
11
|
+
name TEXT PRIMARY KEY, -- "claude-code" | "claude-api" | "claude-agent-sdk-python" | "anthropic-apps" | "skills" | ...
|
|
12
|
+
display_name TEXT NOT NULL, -- "Claude Code", "Claude API", "Claude Agent SDK (Python)"
|
|
13
|
+
source_tier INTEGER NOT NULL, -- 1=GH Releases, 2=GH CHANGELOG.md, 3=HTML, 4=Catalog repo, 5=Third-party
|
|
14
|
+
source_url TEXT NOT NULL,
|
|
15
|
+
fetch_strategy TEXT NOT NULL, -- "gh-releases" | "git-changelog" | "webfetch" | "git-snapshot"
|
|
16
|
+
notes TEXT
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- ============================================================================
|
|
20
|
+
-- RELEASES (per product)
|
|
21
|
+
-- ============================================================================
|
|
22
|
+
|
|
23
|
+
CREATE TABLE releases (
|
|
24
|
+
product TEXT NOT NULL REFERENCES products(name) ON DELETE CASCADE,
|
|
25
|
+
version TEXT NOT NULL, -- "2.1.147" | "v0.2.82" | "2026-05-19" (date when no version)
|
|
26
|
+
released_at DATE,
|
|
27
|
+
notes_path TEXT NOT NULL, -- relative path under repo, e.g. "products/claude-code/releases/2.1.147.md"
|
|
28
|
+
fetched_at DATETIME NOT NULL,
|
|
29
|
+
source_url TEXT NOT NULL,
|
|
30
|
+
bundle_size_kb REAL, -- delta vs prior, when available
|
|
31
|
+
notes_hash TEXT, -- sha256 of normalized notes body for change detection
|
|
32
|
+
PRIMARY KEY (product, version)
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX idx_releases_date ON releases(released_at);
|
|
36
|
+
|
|
37
|
+
-- ============================================================================
|
|
38
|
+
-- CHANGES (per release)
|
|
39
|
+
-- ============================================================================
|
|
40
|
+
|
|
41
|
+
CREATE TABLE changes (
|
|
42
|
+
id INTEGER PRIMARY KEY,
|
|
43
|
+
product TEXT NOT NULL,
|
|
44
|
+
version TEXT NOT NULL,
|
|
45
|
+
ordinal INTEGER NOT NULL, -- order within release (1-based)
|
|
46
|
+
kind TEXT NOT NULL, -- "added" | "fixed" | "renamed" | "deprecated" | "breaking" | "improved" | "removed" | "internal"
|
|
47
|
+
text TEXT NOT NULL, -- the original bullet, verbatim
|
|
48
|
+
FOREIGN KEY (product, version) REFERENCES releases(product, version) ON DELETE CASCADE,
|
|
49
|
+
UNIQUE (product, version, ordinal)
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
CREATE INDEX idx_changes_pv ON changes(product, version);
|
|
53
|
+
CREATE INDEX idx_changes_kind ON changes(kind);
|
|
54
|
+
|
|
55
|
+
-- ============================================================================
|
|
56
|
+
-- ENTITIES (extracted from change text)
|
|
57
|
+
-- ============================================================================
|
|
58
|
+
-- One row per detected entity per change. Lets us query "when was CLAUDE_CODE_WORKFLOWS introduced?"
|
|
59
|
+
|
|
60
|
+
CREATE TABLE entities (
|
|
61
|
+
id INTEGER PRIMARY KEY,
|
|
62
|
+
change_id INTEGER NOT NULL REFERENCES changes(id) ON DELETE CASCADE,
|
|
63
|
+
entity_type TEXT NOT NULL, -- "env_var" | "slash_command" | "cli_option" | "tool" | "hook_event" | "setting_key" | "config_key" | "model_id" | "beta_header" | "api_endpoint"
|
|
64
|
+
entity_value TEXT NOT NULL -- "CLAUDE_CODE_WORKFLOWS" | "/code-review" | "--config" | "Workflow" | "claude-opus-4-7" | "fast-mode-2026-02-01"
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
CREATE INDEX idx_entities_value ON entities(entity_type, entity_value);
|
|
68
|
+
CREATE INDEX idx_entities_change ON entities(change_id);
|
|
69
|
+
|
|
70
|
+
-- ============================================================================
|
|
71
|
+
-- FTS5 over change text
|
|
72
|
+
-- ============================================================================
|
|
73
|
+
|
|
74
|
+
CREATE VIRTUAL TABLE changes_fts USING fts5(text, content='changes', content_rowid='id');
|
|
75
|
+
CREATE TRIGGER changes_fts_insert AFTER INSERT ON changes BEGIN
|
|
76
|
+
INSERT INTO changes_fts(rowid, text) VALUES (new.id, new.text);
|
|
77
|
+
END;
|
|
78
|
+
CREATE TRIGGER changes_fts_delete AFTER DELETE ON changes BEGIN
|
|
79
|
+
INSERT INTO changes_fts(changes_fts, rowid, text) VALUES('delete', old.id, old.text);
|
|
80
|
+
END;
|
|
81
|
+
|
|
82
|
+
-- ============================================================================
|
|
83
|
+
-- MARKERS — "what have I seen?" tracking, per product
|
|
84
|
+
-- ============================================================================
|
|
85
|
+
|
|
86
|
+
CREATE TABLE markers (
|
|
87
|
+
product TEXT NOT NULL REFERENCES products(name) ON DELETE CASCADE,
|
|
88
|
+
name TEXT NOT NULL, -- "last_seen" | "last_synced"
|
|
89
|
+
version TEXT,
|
|
90
|
+
updated_at DATETIME NOT NULL,
|
|
91
|
+
PRIMARY KEY (product, name)
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
-- ============================================================================
|
|
95
|
+
-- RELEVANCE — manually curated "this affects workflow X"
|
|
96
|
+
-- ============================================================================
|
|
97
|
+
|
|
98
|
+
CREATE TABLE relevance (
|
|
99
|
+
id INTEGER PRIMARY KEY,
|
|
100
|
+
change_id INTEGER NOT NULL REFERENCES changes(id) ON DELETE CASCADE,
|
|
101
|
+
tag TEXT NOT NULL, -- "swarm-control-plane" | "memory-gate-hook" | "windows" | "ratchet-invalidates" | "urgent"
|
|
102
|
+
note TEXT,
|
|
103
|
+
added_at DATETIME NOT NULL
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
CREATE INDEX idx_relevance_change ON relevance(change_id);
|
|
107
|
+
CREATE INDEX idx_relevance_tag ON relevance(tag);
|
|
108
|
+
|
|
109
|
+
-- ============================================================================
|
|
110
|
+
-- SYNERGIES — curated cross-product workflows
|
|
111
|
+
-- ============================================================================
|
|
112
|
+
-- The Synergy layer is what makes this a product instead of a mirror.
|
|
113
|
+
-- Source: synergies/*.md files (markdown is the source of truth; parser populates these tables)
|
|
114
|
+
|
|
115
|
+
CREATE TABLE synergies (
|
|
116
|
+
id INTEGER PRIMARY KEY,
|
|
117
|
+
name TEXT NOT NULL UNIQUE, -- "skill-portability" | "mcp-server-portability" | etc.
|
|
118
|
+
title TEXT NOT NULL,
|
|
119
|
+
trigger TEXT NOT NULL, -- "when this workflow is the right answer"
|
|
120
|
+
status TEXT NOT NULL, -- "confirmed" | "speculative" | "deprecated"
|
|
121
|
+
last_validated DATE NOT NULL,
|
|
122
|
+
notes_path TEXT NOT NULL -- "synergies/01-skill-portability.md"
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
CREATE TABLE synergy_products (
|
|
126
|
+
synergy_id INTEGER NOT NULL REFERENCES synergies(id) ON DELETE CASCADE,
|
|
127
|
+
product TEXT NOT NULL REFERENCES products(name),
|
|
128
|
+
PRIMARY KEY (synergy_id, product)
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
CREATE TABLE synergy_steps (
|
|
132
|
+
synergy_id INTEGER NOT NULL REFERENCES synergies(id) ON DELETE CASCADE,
|
|
133
|
+
ordinal INTEGER NOT NULL,
|
|
134
|
+
text TEXT NOT NULL,
|
|
135
|
+
PRIMARY KEY (synergy_id, ordinal)
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
CREATE TABLE synergy_evidence (
|
|
139
|
+
id INTEGER PRIMARY KEY,
|
|
140
|
+
synergy_id INTEGER NOT NULL REFERENCES synergies(id) ON DELETE CASCADE,
|
|
141
|
+
source_url TEXT NOT NULL,
|
|
142
|
+
quote TEXT,
|
|
143
|
+
source_kind TEXT -- "changelog" | "docs" | "release-notes" | "blog" | "github-readme"
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
-- Link synergies to specific changelog entries that enable them
|
|
147
|
+
-- (e.g. synergy 07 cites Claude Code 2.1.147's /code-review --comment change)
|
|
148
|
+
CREATE TABLE synergy_change_refs (
|
|
149
|
+
synergy_id INTEGER NOT NULL REFERENCES synergies(id) ON DELETE CASCADE,
|
|
150
|
+
change_id INTEGER NOT NULL REFERENCES changes(id) ON DELETE CASCADE,
|
|
151
|
+
PRIMARY KEY (synergy_id, change_id)
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
CREATE INDEX idx_synergy_products ON synergy_products(product);
|
|
155
|
+
CREATE INDEX idx_synergy_change_refs_change ON synergy_change_refs(change_id);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-portability
|
|
3
|
+
title: Develop skills in Claude Code, deploy via Claude API
|
|
4
|
+
products: [claude-code, claude-api, claude-cowork]
|
|
5
|
+
trigger: User has built a working skill in `~/.claude/skills/<name>/` and wants to use it in a production agentic workload
|
|
6
|
+
status: confirmed
|
|
7
|
+
last_validated: 2026-05-21
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Develop skills in Claude Code, deploy via Claude API
|
|
11
|
+
|
|
12
|
+
**Why it works:** Skills are folders of instructions/scripts/resources with the same format across every Anthropic surface. Building locally in Code is the lowest-friction iteration path; the same folder graduates unchanged to Claude API and Cowork.
|
|
13
|
+
|
|
14
|
+
**Workflow:**
|
|
15
|
+
|
|
16
|
+
1. Create `~/.claude/skills/<name>/SKILL.md` with `name`, `description`, optional `tools` frontmatter
|
|
17
|
+
2. Iterate in Code — edit the file, invoke via `Skill` tool or natural context match, repeat
|
|
18
|
+
3. When stable, organize as a directory with SKILL.md + supporting scripts/resources
|
|
19
|
+
4. **Graduate to API:** `POST /v1/skills` with the bundle (requires `skills-2025-10-02` beta header). Returns a skill ID
|
|
20
|
+
5. Reference the skill ID in Messages API requests — Claude loads it on demand
|
|
21
|
+
6. **(Optional) Publish in Cowork:** submit to [claude-plugins-official](https://github.com/anthropics/claude-plugins-official) or [knowledge-work-plugins](https://github.com/anthropics/knowledge-work-plugins) for team distribution
|
|
22
|
+
|
|
23
|
+
**Evidence:**
|
|
24
|
+
|
|
25
|
+
- [Claude API release notes 2025-10-16](https://platform.claude.com/docs/en/release-notes/overview#october-16-2025): "Skills are organized folders of instructions, scripts, and resources that Claude loads dynamically to perform specialized tasks. Anthropic-managed Skills + Custom Skills via /v1/skills"
|
|
26
|
+
- [anthropics/skills](https://github.com/anthropics/skills) — official catalog (pptx, xlsx, docx, pdf)
|
|
27
|
+
- The local-format-and-API-format identity is the load-bearing fact; if Anthropic ever forks them, this synergy breaks
|
|
28
|
+
|
|
29
|
+
**Caveats:**
|
|
30
|
+
|
|
31
|
+
- Skills require the `code execution` tool enabled in the API request
|
|
32
|
+
- Cost: every API request loading a skill incurs token cost for its instructions — keep them lean
|
|
33
|
+
- Cowork plugin manifests may have additional fields beyond raw Code skills; check the repo before publishing
|