@buildinternet/releases-skills 0.47.0 → 0.49.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.47.0",
3
+ "version": "0.49.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",
@@ -240,3 +240,5 @@ Organizations can have multiple distinct products (e.g., Vercel → Next.js, Tur
240
240
  Use product and org management operations to organize what you find. CLI: `releases admin product create`, `releases admin org tag add`, `releases categories`. Typed tools: `manage_product`, `manage_org` — each carries the valid category list in its description (also provided in your system prompt).
241
241
 
242
242
  Don't force product groupings when sources are ambiguous — leave them at the org level and note suggestions in the state file.
243
+
244
+ When a company is multi-product (you found a multi-product `changelog.json`, or distinct product changelogs/repos), carry that grouping into onboarding by tagging each source with its `productName`/`productSlug` (see *Grouping sources into products* in `managing-sources`). Index only the org's own products, not ecosystem/community plugins.
@@ -65,6 +65,19 @@ Rules, in priority order:
65
65
 
66
66
  When in doubt: would a developer reading this name on its own (with the org already shown above) recognize what it is? If yes, strip. If no, keep the prefix.
67
67
 
68
+ ### Grouping sources into products
69
+
70
+ **Grouping sources into products.** Most companies are single-product — leave `productSlug`/`productName` unset and sources attach directly to the org (the default).
71
+
72
+ Only when a company ships **2 or more genuinely distinct products** — each with its own identity and release cadence (Vercel → Next.js, Turborepo, SWR; Datadog → APM, RUM, Browser SDK) — tag each discovered source with the product it belongs to: `productName` (canonical name, same naming rules as sources — no org prefix) and `productSlug` (stable kebab-case, per-org unique).
73
+
74
+ A product is a distinct offering, **not**:
75
+ - the company/engineering blog, newsroom, or all-in-one changelog → leave org-direct (untagged)
76
+ - the docs site or marketing feed → org-direct
77
+ - every individual GitHub repo by default — only repos that are themselves a recognized product
78
+
79
+ If you can't name 2+ distinct products with confidence, tag nothing. Spurious products are worse than none.
80
+
68
81
  ### Organization descriptions
69
82
 
70
83
  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.
@@ -50,6 +50,10 @@ Two commands built for agents specifically:
50
50
 
51
51
  `releases get <source> --json` reports `hasChangelogFile` and the `changelogUrl` keyless, so you can tell whether a source maintains a checked-in CHANGELOG.md. To read the **sliced content** keyless, use the MCP's `get_catalog_entry` (with `changelog_tokens` / `nextOffset`) or fetch the `changelogUrl` directly — the CLI's `releases admin source changelog` wrapper is key-gated and won't run without auth.
52
52
 
53
+ ### Submitting a source (keyless)
54
+
55
+ `releases submit <url>` suggests a changelog or release-notes URL for the registry — the same review queue the [web submit form](https://releases.sh/submit) feeds, no key required. Scheme is optional (`https://` assumed); `--note` adds context and `--contact` an optional reply email. With no argument in a TTY it prompts; it also reads a piped URL from stdin. Its sibling `releases feedback "<message>"` sends product feedback the same keyless way. Maintainers triage submissions under the key-gated `releases admin recommendations …` (see the admin reference).
56
+
53
57
  ## Common Mistakes
54
58
 
55
59
  - `releases list` lists sources (alias `releases sources`). Do NOT write `releases sources list` — it reads `list` as a source slug and fails with "Source not found: list".
@@ -211,3 +211,19 @@ releases admin mcp serve
211
211
  ```
212
212
 
213
213
  Useful for clients that only support stdio transport. For native remote MCP support (Claude Code, Codex), connect directly to `https://mcp.releases.sh/mcp` instead.
214
+
215
+ ## Recommendations
216
+
217
+ Review and triage the source URLs that users submit keyless via `releases submit` (and the [web submit form](https://releases.sh/submit)). The submit side needs no key; only the review verbs below do.
218
+
219
+ ```bash
220
+ releases admin recommendations list # newest first
221
+ releases admin recommendations list --status new --type source
222
+ releases admin recommendations list --include-archived --cursor <cursor>
223
+ releases admin recommendations triage <id> --status closed # new | triaged | closed
224
+ releases admin recommendations archive <id> # hide from default list
225
+ releases admin recommendations archive <id> --undo # restore
226
+ releases admin recommendations delete <id> # permanent — type the id to confirm, or --yes
227
+ ```
228
+
229
+ `list` is cursor-paginated (`--limit`, follow `--cursor` from the previous page) and hides archived rows unless `--include-archived` is passed. Prefer `archive` over `delete` for a reversible removal. Recommendation ids are `rec_…`. Mirrors the `releases admin feedback …` triage surface.
@@ -132,6 +132,21 @@ releases lookup domain vercel.com
132
132
  releases lookup domain https://tailwindcss.com/blog
133
133
  ```
134
134
 
135
+ ## Submit a source
136
+
137
+ Suggest a changelog or release-notes URL for the registry (keyless — no account or key). This feeds the same review queue as the [web submit form](https://releases.sh/submit); maintainers triage it under the key-gated `releases admin recommendations …`.
138
+
139
+ ```bash
140
+ releases submit https://acme.dev/changelog # one-shot
141
+ releases submit acme.dev/changelog # scheme optional — https:// is assumed
142
+ releases submit # prompt for the URL (interactive)
143
+ echo "https://acme.dev/releases" | releases submit # pipe from stdin
144
+ releases submit https://acme.dev/changelog --note "GitHub: acme/acme" --contact you@example.com
145
+ releases submit https://acme.dev/changelog --dry-run --json # preview the payload, send nothing
146
+ ```
147
+
148
+ `--note` carries extra context (product name, GitHub repo, feed quirks); `--contact` is an optional email to notify once it's reviewed. With no URL argument in an interactive terminal, `submit` prompts for the URL (and the optional note/contact); otherwise pass it inline or pipe via stdin. Index pages, changelogs, GitHub releases, and feed URLs are all ideal.
149
+
135
150
  ## Agent self-discovery
136
151
 
137
152
  ```bash