@buildinternet/releases-skills 0.60.0 → 0.62.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buildinternet/releases-skills",
3
- "version": "0.60.0",
3
+ "version": "0.62.0",
4
4
  "description": "Agent skills bundled with the Releases CLI. Markdown playbooks for changelog ingest, discovery, and analysis.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,7 +43,8 @@ Two commands built for agents specifically:
43
43
  ### Conventions worth knowing (all in the reader reference)
44
44
 
45
45
  - **IDs and slugs are interchangeable** wherever an identifier is expected (`org_…`, `prod_…`, `src_…`, `rel_…`); IDs are stable across renames. Source/product commands also take an `org/slug` coordinate (e.g. `vercel/vercel-ai-sdk`), which skips a resolver round-trip.
46
- - **`--json` everywhere** for stable output. Release readers (`get`, `search`, `tail`) return a **slim** shape by default (core fields + markdown-stripped `excerpt` + `contentTokens` hint) to save tokens; pass `--full` for the complete payload. (`list` is the inverse: verbose by default, `--compact` for less.)
46
+ - **`--json` everywhere** for stable output. Release readers (`get`, `search`, `tail`) return a **slim** shape by default (core fields + markdown-stripped `excerpt` + `contentTokens` hint, plus `media[]` with R2 `r2Url` when present and a `contentTruncated` flag) to save tokens; pass `--full` for the complete payload. (`list` is the inverse: verbose by default — and carries a per-source `Releases` count column — `--compact` for less.)
47
+ - **`tail`/`latest` row cap:** `--count` (alias `--limit`, clamped `1–100`) sets how many releases to return. Only the `--product` feed is cursor-paginated (`--cursor <token>`); the org-wide/global feeds are count-capped, so `--cursor` without `--product` errors.
47
48
  - **Piped output is bare TSV** (no headers/color/truncation), so `releases list | cut -f2` works without parsing ANSI — but note release rows repeat the title across several columns, so check the layout or just use `--json` before slicing by column number. `COLUMNS=<n>` overrides detected width.
48
49
 
49
50
  ### Reading a tracked changelog
@@ -4,6 +4,8 @@ Reader commands are unauthenticated — no API key required. They talk to `api.r
4
4
 
5
5
  **Release JSON is slim by default.** `get`, `search`, and `tail`/`latest` return a lean release shape — `id`, `version`, `title`, `summary`, a markdown-stripped `excerpt`, `url`, `publishedAt`, nested `source`/`org`, and `contentChars`/`contentTokens` size hints. This drops storage internals (`contentHash`, `sourceId`, `versionSort`, `fetchedAt`, …) and the redundant `title*` variants to keep token usage low. Add `--full` when you need the complete payload (including the full `content` body). `summary` may be `null`; lean on `excerpt` / `contentChars` to decide whether to pull more.
6
6
 
7
+ Two fields survive into the slim shape because they answer common questions without a `--full` round-trip: **`media[]`** is included when the release carries media (each item keeps the R2-mirrored `r2Url`), so you can verify "did this image mirror to R2?" from the default output; and **`contentTruncated: true`** is stamped whenever a full `content` body exists but was projected to `excerpt`, signalling that `--full` will return more. Both are omitted when not applicable.
8
+
7
9
  > **Piping note:** in the default (non-`--json`) TSV output, release rows repeat the title across several columns (raw title, normalized title, version). Don't assume `cut -f2` lands on a unique field — check the row layout first, or just use `--json` for stable parsing.
8
10
 
9
11
  ## Search
@@ -47,12 +49,18 @@ releases tail # across all sources
47
49
  releases tail next-js # one source (slug)
48
50
  releases tail src_abc123 # one source (typed id)
49
51
  releases tail --org vercel --count 20 # whole org (org_…, slug, domain, name, or handle)
52
+ releases tail --org vercel --limit 100 # --limit is an alias for --count (both clamp to 1–100)
53
+ releases tail --product nextjs --cursor <token> # page the product feed (see below)
50
54
  releases tail --product nextjs # one product (prod_… or slug)
51
55
  releases tail --type feature # filter by release type
52
56
  releases tail --json # slim shape
53
57
  releases tail --json --full # complete payload
54
58
  ```
55
59
 
60
+ `--count` (alias `--limit`) caps the rows returned and is clamped to `1–100`; a positive integer is required (anything else errors). When a one-shot listing fills the requested window, a truncation hint is printed to **stderr** so `--json` stdout stays clean.
61
+
62
+ Pagination differs by feed: only the **product** feed (`--product`) is cursor-paginated — pass `--cursor <token>` to fetch the next page, chaining the token from the previous response. The org-wide and global feeds are **count-capped, not cursored**, so `--cursor` without `--product` errors rather than being silently ignored (and `--cursor` can't combine with `--follow`).
63
+
56
64
  ## List sources
57
65
 
58
66
  ```bash
@@ -69,6 +77,8 @@ releases list --json --compact # lightweight JSON (id, slug, name, type,
69
77
  releases list --json --limit 20 --page 2 # pagination (server-side)
70
78
  ```
71
79
 
80
+ The text table carries a per-source **`Releases`** count column (a dim `—` when unknown), so you can answer "how many releases does this source have?" without a follow-up call; the `--json` rows expose the same value as `releaseCount`.
81
+
72
82
  Aliased as `releases admin source list` for discoverability within admin workflows.
73
83
 
74
84
  ## Get any entity
@@ -85,6 +95,8 @@ releases get vercel # slug fallthrough (org → product
85
95
 
86
96
  Use this when you have an ID from another tool output (search results, MCP tool responses, etc.) and want to inspect it without caring what kind of entity it is.
87
97
 
98
+ For a release, `releases get rel_… --json` carries `media[]` (with each item's R2-mirrored `r2Url`) and a `contentTruncated` flag in the slim shape — enough to confirm media mirrored to R2 and whether there's a fuller body behind `--full`, without dropping to the raw API.
99
+
88
100
  ## Stats
89
101
 
90
102
  ```bash