@buildinternet/releases-skills 0.20.0 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -17,10 +17,10 @@ Turn changelog data into competitive intelligence by analyzing release patterns
|
|
|
17
17
|
|
|
18
18
|
| Operation | CLI | Typed tool |
|
|
19
19
|
|-----------|-----|------------|
|
|
20
|
-
| Check existing sources | `releases list --query <company> --json` | `
|
|
20
|
+
| Check existing sources | `releases list --query <company> --json` | `list_catalog` with query param; `list_sources` is a deprecated alias |
|
|
21
21
|
| Fetch releases | `releases admin source fetch <slug> --max 50` | `manage_source` action "fetch" with identifier (ID or slug) |
|
|
22
22
|
| Get latest releases | `releases tail <slug> --json` | `get_latest_releases` with source/org and limit |
|
|
23
|
-
| Search releases | `releases search <query> --json` | `
|
|
23
|
+
| Search releases | `releases search <query> --json` | `search` with `type: ["releases"]`; `search_releases` is a deprecated alias |
|
|
24
24
|
| Summarize | `releases summary <slug> --json` | (not available as typed tool) |
|
|
25
25
|
| Compare | `releases compare <slugA> <slugB> --json` | (not available as typed tool) |
|
|
26
26
|
|
|
@@ -44,13 +44,13 @@ Get structured release data with dates for each source. Use a limit (e.g., 50) t
|
|
|
44
44
|
|
|
45
45
|
### 5. Search and cross-reference
|
|
46
46
|
|
|
47
|
-
Search across all indexed releases to find specific features, breaking changes, or patterns. `
|
|
47
|
+
Search across all indexed releases to find specific features, breaking changes, or patterns. The unified `search` tool (with `type: ["releases"]`) is hybrid (lexical + semantic) by default — natural-language queries like "auth refresh tokens" or "cold start improvements" work without exact keyword matches. Pass `mode: "lexical"` if you need strict keyword behavior.
|
|
48
48
|
|
|
49
49
|
**Result shape:** every hit carries a `kind` discriminator:
|
|
50
50
|
- `kind: "release"` — a normal release row, use as-is.
|
|
51
51
|
- `kind: "changelog_chunk"` — a passage from a stored CHANGELOG.md file. The hit includes `sourceSlug`, `chunkOffset`, and `chunkLength`. Chain into `get_source_changelog({ slug: sourceSlug, offset: chunkOffset, limit: chunkLength * 3 })` to read the surrounding section before quoting it. Chunk hits often surface older or more granular notes than what's in the indexed release rows, so they're useful for "when did X first ship" questions.
|
|
52
52
|
|
|
53
|
-
For org/product/source discovery (e.g. "find observability vendors with edge offerings"), use `
|
|
53
|
+
For org/product/source discovery (e.g. "find observability vendors with edge offerings"), use `search` with `type: ["orgs", "catalog"]` instead of `list_catalog --query` — it's vector-backed and matches on description and category, not just slug substring.
|
|
54
54
|
|
|
55
55
|
### 6. Synthesize
|
|
56
56
|
|
|
@@ -13,13 +13,13 @@ Operations can be performed via CLI commands or typed MCP/agent tools. Use which
|
|
|
13
13
|
|
|
14
14
|
| Operation | CLI | Typed tool |
|
|
15
15
|
|-----------|-----|------------|
|
|
16
|
-
| List sources | `releases list [slug] --json [--org <org>] [--query <text>] [--has-feed] [--category <c>] [--compact] [--limit <n>] [--page <n>]` | `
|
|
16
|
+
| List sources | `releases list [slug] --json [--org <org>] [--query <text>] [--has-feed] [--category <c>] [--compact] [--limit <n>] [--page <n>]` | `list_catalog` (filter `kind: "source"` to exclude products); `list_sources` is a deprecated alias |
|
|
17
17
|
| Add source | `releases admin source add <name> --url <url> [--type <type>] [--org <org>] [--feed-url <url>] [--primary]` | `manage_source` action "add" with name, url, type, organization, feed_url, **is_primary** (type auto-detected if omitted; only pass is_primary=true when the source is the org's primary changelog — see "Primary Sources") |
|
|
18
18
|
| Edit source | `releases admin source edit <identifier> [--primary] [--priority <p>]` | `manage_source` action "edit" with identifier, is_primary, fetch_priority, name, url, type (use only when changing an already-added source; prefer setting flags on "add") |
|
|
19
19
|
| Remove source | `releases admin source remove <slug> [--ignore --reason <reason>]` | `manage_source` action "remove" with identifier |
|
|
20
20
|
| Fetch releases | `releases admin source fetch <slug> [--dry-run] [--max <n>]` | `manage_source` action "fetch" with identifier |
|
|
21
21
|
| Get latest releases | `releases tail [slug] --json [--org <org>]` | `get_latest_releases` with source, organization, limit params |
|
|
22
|
-
| Search releases | `releases search <query> --json` | `
|
|
22
|
+
| Search releases | `releases search <query> --json` | `search` with `type: ["releases"]`; `search_releases` is a deprecated alias |
|
|
23
23
|
| Evaluate URL | `releases admin discovery evaluate <url> --json` | `evaluate_url` with url param |
|
|
24
24
|
| Add org | `releases admin org add <name> [--domain <d>] [--description <t>] [--category <c>] [--tags <t1,t2>]` | `manage_org` action "add" with name, domain, description, category, tags |
|
|
25
25
|
| Edit org | `releases admin org edit <slug> [--category <c>]` | `manage_org` action "edit" with identifier, category |
|
|
@@ -67,7 +67,7 @@ When in doubt: would a developer reading this name on its own (with the org alre
|
|
|
67
67
|
|
|
68
68
|
### Organization descriptions
|
|
69
69
|
|
|
70
|
-
When creating an org, include a brief one-sentence product description. This grounds AI summaries for lesser-known products, and it's also the primary signal for the entity vector index — `
|
|
70
|
+
When creating an org, include a brief one-sentence product description. This grounds AI summaries for lesser-known products, and it's also the primary signal for the entity vector index — the unified `search` tool (and the registry side of hybrid search) matches on description + category, not just name. A good description noticeably improves recall.
|
|
71
71
|
|
|
72
72
|
### Embedding side effects
|
|
73
73
|
|
|
@@ -4,25 +4,23 @@ Reader commands are unauthenticated — no API key required. They talk to `api.r
|
|
|
4
4
|
|
|
5
5
|
## Search
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Unified search across organizations, the catalog (products + standalone sources), and releases.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
releases search "authentication"
|
|
11
11
|
releases search "vercel" --type releases --limit 5
|
|
12
|
+
releases search "react" --type catalog
|
|
12
13
|
releases search "breaking change" --json
|
|
13
|
-
releases search "retry" --org stripe
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
Flags:
|
|
17
17
|
|
|
18
|
-
- `--type <
|
|
19
|
-
- `--
|
|
20
|
-
- `--
|
|
21
|
-
- `--
|
|
22
|
-
- `--mode <lexical|semantic|hybrid>` — default `hybrid`. Use `lexical` for pure FTS ranking.
|
|
23
|
-
- `--json` — machine output; each hit includes a `kind: "release" | "changelog_chunk"` discriminator.
|
|
18
|
+
- `--type <orgs|catalog|releases>` — narrow to one section (default: all three). `products` is accepted as a deprecated alias for `catalog`.
|
|
19
|
+
- `--limit <n>` — max results per section (default: 10).
|
|
20
|
+
- `--mode <lexical|semantic|hybrid>` — pick the release-retrieval strategy. Server default is hybrid; pass `lexical` for pure FTS ranking.
|
|
21
|
+
- `--json` — machine output. Release hits include a `kind: "release" | "changelog_chunk"` discriminator. Catalog hits include `kind: "product" | "source"` so you can route a click to either a product page or a standalone source.
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
Catalog hits also include the response field `catalog`. Older API deploys will still send the deprecated `products` alias instead — the CLI reads either, but new code should consume `catalog`.
|
|
26
24
|
|
|
27
25
|
## Latest releases
|
|
28
26
|
|
|
@@ -19,9 +19,11 @@ Activate when the user:
|
|
|
19
19
|
|
|
20
20
|
## How to Look Up Releases
|
|
21
21
|
|
|
22
|
-
### Step 1: Find the Organization or
|
|
22
|
+
### Step 1: Find the Organization or Catalog Entry
|
|
23
23
|
|
|
24
|
-
Call `list_organizations` with the library/product name as the `query` parameter.
|
|
24
|
+
Call `list_organizations` with the library/product name as the `query` parameter. For product-specific questions, browse the catalog (products + standalone sources) with `list_catalog` and fetch detail with `get_catalog_entry` — these replaced the older `list_products` / `get_product` / `list_sources` / `get_source` tools, which still exist as deprecated aliases.
|
|
25
|
+
|
|
26
|
+
The unified `search` tool is also available — it returns `orgs`, `catalog`, and `releases` sections in one call. Catalog hits carry a `kind: "product" | "source"` discriminator, so you can route a click to either a product page or a standalone source. (Older API responses send the same array under a deprecated `products` alias; new clients should consume `catalog`.)
|
|
25
27
|
|
|
26
28
|
If the query returns no results, try variations:
|
|
27
29
|
- The company name instead of the product name (e.g., "Vercel" instead of "Next.js")
|
|
@@ -31,9 +33,11 @@ If the query returns no results, try variations:
|
|
|
31
33
|
### Step 2: Choose the Right Tool
|
|
32
34
|
|
|
33
35
|
- **"What's new?" / "Latest releases"** → Use `get_latest_releases` with the organization or product slug
|
|
34
|
-
- **Specific feature or keyword** → Use `
|
|
36
|
+
- **Specific feature or keyword across orgs + catalog + releases** → Use `search` (unified) with a descriptive query; narrow via `type: ["releases"]` etc.
|
|
37
|
+
- **Releases-only search** → Use `search_releases` (kept for back-compat) when you only want release rows
|
|
35
38
|
- **Single release by id** → Use `get_release` when you already have a `rel_` id (search results include ids)
|
|
36
|
-
- **
|
|
39
|
+
- **Catalog deep-dive (product or standalone source)** → Use `get_catalog_entry` for metadata, tags, and linkage
|
|
40
|
+
- **Organization detail** → Use `get_organization`
|
|
37
41
|
- **Canonical CHANGELOG.md from a GitHub repo** → Use `get_source_changelog` when the user wants the full maintained file, not just the tagged releases (refreshed on every fetch). For large files, pass `tokens` (cl100k_base budget, e.g. 5000 or 10000) to get a heading-aligned slice that fits a known context window; chain via the returned `nextOffset`. Every response reports `totalTokens` so you can plan how many calls you need upfront.
|
|
38
42
|
- **Compare two products** → Use `compare_products` with an array of two product slugs
|
|
39
43
|
- **Summarize recent activity** → Use `summarize_changes` with the product slug
|