@buildinternet/releases-skills 0.25.0 → 0.27.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/package.json
CHANGED
|
@@ -30,7 +30,7 @@ Operations can be performed via CLI commands or typed MCP/agent tools. Use which
|
|
|
30
30
|
| Ignore URL | `releases admin policy ignore add --org <org> <url>` | `exclude_url` action "ignore" with url, organization |
|
|
31
31
|
| Block URL | `releases admin policy block add <url>` | `exclude_url` action "block" with url |
|
|
32
32
|
| Get playbook | `releases admin playbook <org>` | `manage_playbook` action "get" with organization |
|
|
33
|
-
| Update playbook notes | `releases admin playbook <org> --notes
|
|
33
|
+
| Update playbook notes | `releases admin playbook <org> --notes-file <path>` (use `-` for stdin) | `manage_playbook` action "update_notes" with organization, notes |
|
|
34
34
|
|
|
35
35
|
Valid categories (pass to `manage_org`/`manage_product`): see the enum in those tool descriptions or your system prompt. `list_categories` (now retired) has been folded into the two tool descriptions.
|
|
36
36
|
|
|
@@ -31,26 +31,28 @@ The CLI talks to `api.releases.sh` by default — no configuration needed for re
|
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
# Reader (no auth required)
|
|
34
|
-
releases search "breaking change"
|
|
35
|
-
releases tail next-js
|
|
36
|
-
releases tail
|
|
37
|
-
releases
|
|
38
|
-
releases
|
|
39
|
-
releases
|
|
40
|
-
releases
|
|
34
|
+
releases search "breaking change" # hybrid FTS + semantic search
|
|
35
|
+
releases tail next-js # latest releases from one source
|
|
36
|
+
releases tail src_abc123 # IDs work anywhere a slug does
|
|
37
|
+
releases tail --org vercel --count 20 # latest from a whole org
|
|
38
|
+
releases list --category ai # browse sources
|
|
39
|
+
releases get vercel # dispatch by id or slug
|
|
40
|
+
releases get org_abc123 # typed IDs are accepted
|
|
41
|
+
releases stats # registry overview
|
|
42
|
+
releases categories # list valid category values
|
|
41
43
|
|
|
42
44
|
# Admin (requires RELEASED_API_KEY)
|
|
43
45
|
releases admin source create "Linear" --url https://linear.app/changelog
|
|
44
|
-
releases admin source fetch <
|
|
46
|
+
releases admin source fetch <source> --max 50 # source = src_… or slug
|
|
45
47
|
releases admin org create "Acme" --category cloud
|
|
46
|
-
releases admin product create "CLI" --org acme
|
|
47
|
-
releases admin discovery onboard "Stripe"
|
|
48
|
+
releases admin product create "CLI" --org acme # --org accepts org_…, slug, domain, name, or handle
|
|
49
|
+
releases admin discovery onboard "Stripe" # AI-powered discovery agent
|
|
48
50
|
|
|
49
51
|
# Local stdio MCP bridge (proxies to api.releases.sh)
|
|
50
52
|
releases admin mcp serve
|
|
51
53
|
```
|
|
52
54
|
|
|
53
|
-
Every
|
|
55
|
+
Every command that takes an org / product / source / release identifier accepts the typed ID (`org_…`, `prod_…`, `src_…`, `rel_…`) interchangeably with the slug — including `--org`, `--product`, `--source` flags. IDs are stable across renames; slugs are friendlier to type. Source and product commands also accept an `org/slug` coordinate (e.g. `vercel/vercel-ai-sdk`); coordinates and typed IDs are unambiguous and skip an extra resolver round-trip that bare slugs require. Every reader command accepts `--json` for machine-readable output.
|
|
54
56
|
|
|
55
57
|
## Authentication
|
|
56
58
|
|
|
@@ -70,7 +72,7 @@ These can also go in a `.env` file — Bun auto-loads it when running from sourc
|
|
|
70
72
|
## Common Mistakes
|
|
71
73
|
|
|
72
74
|
- `releases admin …` without `RELEASED_API_KEY` set fails fast with a clear error — don't retry the same command. Note that keys are not self-serve yet (see Authentication).
|
|
73
|
-
- Slug renames (`admin source update <
|
|
74
|
-
- `releases admin source fetch` with no
|
|
75
|
+
- Slug renames (`admin source update <identifier> --slug new-slug`) require `--confirm-slug-change` because they break web links.
|
|
76
|
+
- `releases admin source fetch` with no source or filter is blocked in remote mode. Use `--stale`, `--unfetched`, `--retry-errors`, `--changed`, or a source identifier (src_… or slug).
|
|
75
77
|
- Default fetch cap is 200 releases per source (GitHub pagination limits). Use `--max <n>` or `--all` to override.
|
|
76
78
|
- `summary` and `compare` are *not* in this CLI. Those commands require AI provider calls and live in the private maintainer tooling. Use the hosted MCP tools `summarize_changes` / `compare_products` at `mcp.releases.sh` instead.
|
|
@@ -37,9 +37,10 @@ Statuses on the Lookup section: `INDEXED` (just materialized), `EXISTING` (alrea
|
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
releases tail # across all sources
|
|
40
|
-
releases tail next-js # one source (
|
|
41
|
-
releases tail
|
|
42
|
-
releases tail --
|
|
40
|
+
releases tail next-js # one source (slug)
|
|
41
|
+
releases tail src_abc123 # one source (typed id)
|
|
42
|
+
releases tail --org vercel --count 20 # whole org (org_…, slug, domain, name, or handle)
|
|
43
|
+
releases tail --product nextjs # one product (prod_… or slug)
|
|
43
44
|
releases tail --type feature # filter by release type
|
|
44
45
|
releases tail --json
|
|
45
46
|
```
|
|
@@ -48,9 +49,9 @@ releases tail --json
|
|
|
48
49
|
|
|
49
50
|
```bash
|
|
50
51
|
releases list # all sources
|
|
51
|
-
releases list next-js # detail for one source (
|
|
52
|
-
releases list --org sentry # filter by organization
|
|
53
|
-
releases list --product nextjs # filter by product
|
|
52
|
+
releases list next-js # detail for one source (src_… or slug)
|
|
53
|
+
releases list --org sentry # filter by organization (org_…, slug, domain, name, or handle)
|
|
54
|
+
releases list --product nextjs # filter by product (prod_… or slug)
|
|
54
55
|
releases list --query shadcn # name / slug / url substring
|
|
55
56
|
releases list --has-feed # sources with a discovered feed URL
|
|
56
57
|
releases list --category ai # filter by category
|
|
@@ -33,15 +33,14 @@ If the query returns no results, try variations:
|
|
|
33
33
|
|
|
34
34
|
### Step 2: Choose the Right Tool
|
|
35
35
|
|
|
36
|
-
- **"What's new?" / "Latest releases"** → Use `get_latest_releases` with the organization or product slug
|
|
36
|
+
- **"What's new?" / "Latest releases"** → Use `get_latest_releases` with the organization or product identifier (typed ID like `org_…` / `prod_…` / `src_…`, slug, or `org/slug` coordinate)
|
|
37
37
|
- **Specific feature or keyword across orgs + catalog + releases** → Use `search` (unified) with a descriptive query; narrow via `type: ["releases"]` etc.
|
|
38
38
|
- **Releases-only search** → Use `search_releases` (kept for back-compat) when you only want release rows
|
|
39
39
|
- **Single release by id** → Use `get_release` when you already have a `rel_` id (search results include ids)
|
|
40
40
|
- **Catalog deep-dive (product or standalone source)** → Use `get_catalog_entry` for metadata, tags, and linkage
|
|
41
41
|
- **Organization detail** → Use `get_organization`
|
|
42
|
-
- **Canonical CHANGELOG.md from a GitHub repo** → Use `
|
|
43
|
-
- **Compare two products** →
|
|
44
|
-
- **Summarize recent activity** → Use `summarize_changes` with the product slug
|
|
42
|
+
- **Canonical CHANGELOG.md from a GitHub repo** → Use `get_catalog_entry` with `include_changelog: true` when the user wants the full maintained file, not just the tagged releases (refreshed on every fetch). For large files, pass `changelog_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.
|
|
43
|
+
- **Compare two products** → Fetch each product separately with `get_catalog_entry` (and `get_latest_releases` for recent activity), then synthesize the comparison from the returned data. The hosted MCP server does not expose AI summarization tools.
|
|
45
44
|
|
|
46
45
|
### Step 3: Present Results
|
|
47
46
|
|
|
@@ -53,6 +52,6 @@ If the query returns no results, try variations:
|
|
|
53
52
|
## Guidelines
|
|
54
53
|
|
|
55
54
|
- Pass the user's full question context into query parameters for better relevance
|
|
56
|
-
- When the user mentions a time range ("last month", "since v4"), use the `days` parameter on `get_latest_releases`
|
|
55
|
+
- When the user mentions a time range ("last month", "since v4"), use the `days` parameter on `get_latest_releases`
|
|
57
56
|
- If a product isn't found, say so clearly — don't fabricate release information
|
|
58
57
|
- For comparison questions, both products must be indexed; if one isn't found, explain which is missing
|
|
@@ -109,15 +109,14 @@ Products: {product list or "none"}
|
|
|
109
109
|
**Coverage**: 2-3 sentences. Which sources are canonical, whether there are gaps.
|
|
110
110
|
|
|
111
111
|
Save by running:
|
|
112
|
-
releases admin playbook {slug} --notes
|
|
112
|
+
releases admin playbook {slug} --notes-file - 2>/dev/null <<'NOTES'
|
|
113
113
|
YOUR NOTES HERE
|
|
114
114
|
NOTES
|
|
115
|
-
)" 2>/dev/null
|
|
116
115
|
|
|
117
116
|
Verify with: releases admin playbook {slug} 2>/dev/null | tail -20
|
|
118
117
|
```
|
|
119
118
|
|
|
120
|
-
The playbook header regenerates automatically after any source create/update/delete, and the `--notes` PATCH seeds a fresh header on first write — no separate regenerate step needed.
|
|
119
|
+
The playbook header regenerates automatically after any source create/update/delete, and the `--notes-file` PATCH seeds a fresh header on first write — no separate regenerate step needed.
|
|
121
120
|
|
|
122
121
|
### Verified prompt template
|
|
123
122
|
|
|
@@ -156,10 +155,9 @@ Every claim must cite observed data. If uncertain, say so explicitly.
|
|
|
156
155
|
|
|
157
156
|
## Step 4: Save
|
|
158
157
|
|
|
159
|
-
releases admin playbook {slug} --notes
|
|
158
|
+
releases admin playbook {slug} --notes-file - 2>/dev/null <<'NOTES'
|
|
160
159
|
YOUR NOTES HERE
|
|
161
160
|
NOTES
|
|
162
|
-
)" 2>/dev/null
|
|
163
161
|
|
|
164
162
|
Verify with: releases admin playbook {slug} 2>/dev/null | tail -20
|
|
165
163
|
```
|
|
@@ -184,10 +182,9 @@ Sub-agents may be blocked from saving notes via Bash (heredoc permission issues)
|
|
|
184
182
|
2. The parent agent (you) saves the notes manually:
|
|
185
183
|
|
|
186
184
|
```bash
|
|
187
|
-
releases admin playbook {slug} --notes
|
|
185
|
+
releases admin playbook {slug} --notes-file - 2>/dev/null <<'NOTES'
|
|
188
186
|
{paste notes from agent result}
|
|
189
187
|
NOTES
|
|
190
|
-
)" 2>/dev/null
|
|
191
188
|
```
|
|
192
189
|
|
|
193
190
|
This is a known limitation of subagent permissions. Plan for it — check each agent's result and save manually if needed.
|