@buildinternet/releases-skills 0.24.0 → 0.25.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.24.0",
3
+ "version": "0.25.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",
@@ -154,7 +154,7 @@ If evaluation returns `confidence: low` or `recommendedMethod: scrape`, you may
154
154
 
155
155
  When evaluating multiple changelog sources for an org, identify which one is the company's **primary changelog** — the top-level, platform-wide changelog that covers the product as a whole. This is typically a website changelog page (e.g., `example.com/changelog`) rather than individual GitHub repos or product-specific pages.
156
156
 
157
- After adding sources, mark the primary one. CLI: `releases admin source edit <identifier> --primary`. Typed tool: `manage_source` action "edit" with identifier (ID or slug) and is_primary: true. Only one source per org should be primary. If there's no clear top-level changelog, don't mark any as primary.
157
+ After adding sources, mark the primary one. CLI: `releases admin source update <identifier> --primary`. Typed tool: `manage_source` action "edit" with identifier (ID or slug) and is_primary: true. Only one source per org should be primary. If there's no clear top-level changelog, don't mark any as primary.
158
158
 
159
159
  ## When to Use Crawl
160
160
 
@@ -229,7 +229,7 @@ When in doubt, add and pause rather than skip entirely. A focused index with 3 c
229
229
 
230
230
  When you find a source that matches the staleness or ecosystem criteria above, **still add it to the database** but immediately set it to `--priority paused`. This prevents future onboard runs from rediscovering the same source and re-evaluating it. The source record serves as documentation that "we know about this, and we decided not to track it."
231
231
 
232
- Add the source and immediately set it to paused priority. CLI: `releases admin source add <name> --url <url> --org <org> --type github` then `releases admin source edit <identifier> --priority paused`. Typed tools: `manage_source` action "add" then `manage_source` action "edit" with identifier (ID or slug) and fetch_priority: "paused".
232
+ Add the source and immediately set it to paused priority. CLI: `releases admin source create <name> --url <url> --org <org> --type github` then `releases admin source update <identifier> --priority paused`. Typed tools: `manage_source` action "add" then `manage_source` action "edit" with identifier (ID or slug) and fetch_priority: "paused".
233
233
 
234
234
  Do the same for ecosystem plugins, deprecated products, and low-value repos. The goal is to capture the discovery decision, not to lose the knowledge.
235
235
 
@@ -237,6 +237,6 @@ Do the same for ecosystem plugins, deprecated products, and low-value repos. The
237
237
 
238
238
  Organizations can have multiple distinct products (e.g., Vercel → Next.js, Turborepo, v0). When discovering sources for an org, consider whether they belong to separate products.
239
239
 
240
- Use product and org management operations to organize what you find. CLI: `releases admin product add`, `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).
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.
@@ -14,19 +14,19 @@ Operations can be performed via CLI commands or typed MCP/agent tools. Use which
14
14
  | Operation | CLI | Typed tool |
15
15
  |-----------|-----|------------|
16
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
- | 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
- | 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
- | Remove source | `releases admin source remove <slug> [--ignore --reason <reason>]` | `manage_source` action "remove" with identifier |
17
+ | Add source | `releases admin source create <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
+ | Edit source | `releases admin source update <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
+ | Remove source | `releases admin source delete <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
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
- | 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
- | Edit org | `releases admin org edit <slug> [--category <c>]` | `manage_org` action "edit" with identifier, category |
26
- | Show org | `releases admin org show <slug> --json` | `get_organization` with identifier |
24
+ | Add org | `releases admin org create <name> [--domain <d>] [--description <t>] [--category <c>] [--tags <t1,t2>]` | `manage_org` action "add" with name, domain, description, category, tags |
25
+ | Edit org | `releases admin org update <slug> [--category <c>]` | `manage_org` action "edit" with identifier, category |
26
+ | Show org | `releases admin org get <slug> --json` | `get_organization` with identifier |
27
27
  | Add tags to org | `releases admin org tag add <slug> <tags...>` | `manage_org` action "tag_add" with identifier, tags |
28
28
  | Link account | `releases admin org link <slug> --platform <p> --handle <h>` | `manage_org` action "link_account" with identifier, platform, handle |
29
- | Add product | `releases admin product add <name> --org <org> [--category <c>] [--tags <t>]` | `manage_product` action "add" with name, organization, category, tags |
29
+ | Add product | `releases admin product create <name> --org <org> [--category <c>] [--tags <t>]` | `manage_product` action "add" with name, organization, category, tags |
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 |
@@ -75,7 +75,7 @@ Adding or editing an org, product, or source triggers an entity embedding into t
75
75
 
76
76
  ## Removing Sources
77
77
 
78
- When removing discovery results, also ignore the URL to prevent re-discovery. In CLI: `releases admin source remove <slug> --ignore --reason "..."`. With typed tools: call `manage_source` action "remove" then `exclude_url` action "ignore".
78
+ When removing discovery results, also ignore the URL to prevent re-discovery. In CLI: `releases admin source delete <slug> --ignore --reason "..."`. With typed tools: call `manage_source` action "remove" then `exclude_url` action "ignore".
79
79
 
80
80
  ## Ignored URLs (org-scoped)
81
81
 
@@ -111,9 +111,9 @@ When it does apply, set it on the `add` call in one step, not via a follow-up ed
111
111
  manage_source(action="add", name="Changelog", url="https://example.com/changelog", organization="example-corp", is_primary=true)
112
112
  ```
113
113
 
114
- The same applies on CLI: pass `--primary` to `releases admin source add`, not a follow-up `source edit`.
114
+ The same applies on CLI: pass `--primary` to `releases admin source create`, not a follow-up `source update`.
115
115
 
116
- Use `manage_source(action="edit", is_primary=true)` only when promoting a source you added in a prior session — never in the same flow as the add.
116
+ Use `manage_source(action="edit", is_primary=true)` (or `releases admin source update <slug> --primary` on the CLI) only when promoting a source you added in a prior session — never in the same flow as the add.
117
117
 
118
118
  ## Playbooks
119
119
 
@@ -124,7 +124,7 @@ Each playbook has two layers:
124
124
  - **Header** — auto-generated from source metadata. Shows source types, URLs, priorities, parseInstructions, and product groupings. Regenerates automatically on every source mutation. You never edit this directly.
125
125
  - **Agent notes** — free-form markdown that you fully control. This is the most important part of the playbook. Write it like a skill an agent will follow — imperative, action-oriented, concise — not like human documentation.
126
126
 
127
- **Always read the playbook before fetching or working with an org's sources.** Typed tool: `manage_playbook` action "get" with organization param. CLI: `releases admin playbook <org>`. If no playbook exists yet, one will be auto-generated on the next source mutation (add/edit/remove).
127
+ **Always read the playbook before fetching or working with an org's sources.** Typed tool: `manage_playbook` action "get" with organization param. CLI: `releases admin playbook <org>`. If no playbook exists yet, one will be auto-generated on the next source mutation (create/update/delete).
128
128
 
129
129
  ### Writing good agent notes
130
130
 
@@ -181,8 +181,8 @@ Write notes during onboarding after you've fetched and validated sources. Update
181
181
  The scrape adapter can fetch pages with or without a headless browser. Static-site providers (Docusaurus, VitePress, WordPress, Ghost, Mintlify) are fetched without rendering by default — this is ~10-30x faster.
182
182
 
183
183
  To override the default for a specific source:
184
- - `releases admin source edit <identifier> --no-render` — force fast fetch (no headless browser)
185
- - `releases admin source edit <identifier> --render` — force headless browser rendering
184
+ - `releases admin source update <identifier> --no-render` — force fast fetch (no headless browser)
185
+ - `releases admin source update <identifier> --render` — force headless browser rendering
186
186
 
187
187
  Use `--render` when you know a source needs JavaScript execution. Use `--no-render` when you've verified the content is in the initial HTML for a provider not yet in the static list.
188
188
 
@@ -32,7 +32,7 @@ Key CLI flags (not available via typed tool — the typed tool always does a ful
32
32
 
33
33
  ### Checking results
34
34
 
35
- After fetching, verify releases were persisted. CLI: `releases tail <slug> --json` or `releases admin source fetch-log <slug>`. Typed tool: `get_latest_releases` with source param. Use `get_organization` (or `releases admin org show <slug> --json`) to see the full picture of an org's sources.
35
+ After fetching, verify releases were persisted. CLI: `releases tail <slug> --json` or `releases admin source fetch-log <slug>`. Typed tool: `get_latest_releases` with source param. Use `get_organization` (or `releases admin org get <slug> --json`) to see the full picture of an org's sources.
36
36
 
37
37
  ## Incremental vs Bulk Parsing
38
38
 
@@ -72,7 +72,7 @@ Do NOT fetch release URLs in the parent agent — always delegate to a subagent
72
72
  **What to do based on the result:**
73
73
 
74
74
  If pages are richer than feed content (more text, images, videos, or code examples):
75
- 1. Record the assessment and enable crawl mode. CLI: `releases admin source edit <identifier> --metadata '{"feedContentDepth":"summary-only","crawlEnabled":true}'`. Typed tool: `manage_source` action "edit" with the same metadata. Subsequent fetches will follow links to per-release pages and extract full content in one pass.
75
+ 1. Record the assessment and enable crawl mode. CLI: `releases admin source update <identifier> --metadata '{"feedContentDepth":"summary-only","crawlEnabled":true}'`. Typed tool: `manage_source` action "edit" with the same metadata. Subsequent fetches will follow links to per-release pages and extract full content in one pass.
76
76
  2. Re-fetch the source once to backfill. CLI: `releases admin source fetch <slug> --full`. Typed tool: `manage_source` action "fetch".
77
77
  3. Verify results. CLI: `releases list <slug> --json` or `releases tail <slug>`. Typed tool: `get_latest_releases` — check content is richer after the re-fetch.
78
78
 
@@ -176,5 +176,5 @@ When adding a new source, always validate before committing:
176
176
 
177
177
  1. **Fetch** — CLI: `releases admin source fetch <slug> --dry-run` then `releases admin source fetch <slug>`. Typed tool: `manage_source` action "fetch" with identifier (ID or slug).
178
178
  2. **Verify** — CLI: `releases tail <slug> --json` or `releases admin source fetch-log <slug>`. Typed tool: `get_latest_releases` with source identifier.
179
- 3. **If poor results** — try a different URL or type. CLI: `releases admin source edit <identifier> --type feed`. Typed tool: `manage_source` action "edit" with identifier.
180
- 4. **If no usable releases** — remove the source. CLI: `releases admin source remove <slug> --ignore --reason "..."`. Typed tool: `manage_source` action "remove" with identifier, then `exclude_url`.
179
+ 3. **If poor results** — try a different URL or type. CLI: `releases admin source update <identifier> --type feed`. Typed tool: `manage_source` action "edit" with identifier.
180
+ 4. **If no usable releases** — remove the source. CLI: `releases admin source delete <slug> --ignore --reason "..."`. Typed tool: `manage_source` action "remove" with identifier, then `exclude_url`.
@@ -35,22 +35,22 @@ releases search "breaking change" # hybrid FTS + semantic search
35
35
  releases tail next-js # latest releases from one source
36
36
  releases tail --org vercel --count 20 # latest from a whole org
37
37
  releases list --category ai # browse sources
38
- releases show vercel # dispatch by id or slug
38
+ releases get vercel # dispatch by id or slug
39
39
  releases stats # registry overview
40
40
  releases categories # list valid category values
41
41
 
42
42
  # Admin (requires RELEASED_API_KEY)
43
- releases admin source add "Linear" --url https://linear.app/changelog
43
+ releases admin source create "Linear" --url https://linear.app/changelog
44
44
  releases admin source fetch <slug> --max 50
45
- releases admin org add "Acme" --category cloud
46
- releases admin product add "CLI" --org acme
45
+ releases admin org create "Acme" --category cloud
46
+ releases admin product create "CLI" --org acme
47
47
  releases admin discovery onboard "Stripe" # AI-powered discovery agent
48
48
 
49
49
  # Local stdio MCP bridge (proxies to api.releases.sh)
50
50
  releases admin mcp serve
51
51
  ```
52
52
 
53
- Every reader command accepts `--json` for machine-readable output. IDs (`org_…`, `src_…`, `prod_…`, `rel_…`) are accepted anywhere a slug is.
53
+ Every reader command accepts `--json` for machine-readable output. IDs (`org_…`, `src_…`, `prod_…`, `rel_…`) are accepted anywhere a slug is. 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.
54
54
 
55
55
  ## Authentication
56
56
 
@@ -70,7 +70,7 @@ These can also go in a `.env` file — Bun auto-loads it when running from sourc
70
70
  ## Common Mistakes
71
71
 
72
72
  - `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 edit <slug> --slug new-slug`) require `--confirm-slug-change` because they break web links.
73
+ - Slug renames (`admin source update <slug> --slug new-slug`) require `--confirm-slug-change` because they break web links.
74
74
  - `releases admin source fetch` with no slug or filter is blocked in remote mode. Use `--stale`, `--unfetched`, `--retry-errors`, `--changed`, or a source slug.
75
75
  - Default fetch cap is 200 releases per source (GitHub pagination limits). Use `--max <n>` or `--all` to override.
76
76
  - `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.
@@ -10,24 +10,24 @@ export RELEASED_API_KEY=your_key
10
10
 
11
11
  Missing or invalid keys fail fast at CLI startup with a clear error; don't retry the same command without fixing the env var.
12
12
 
13
- All admin commands accept an entity ID (`org_…`, `src_…`, `prod_…`, `rel_…`) or a slug wherever an identifier is expected. Prefer IDs — slugs can change, IDs cannot.
13
+ All admin commands accept an entity ID (`org_…`, `src_…`, `prod_…`, `rel_…`) or a slug wherever an identifier is expected. Source and product commands also accept an `org/slug` coordinate (e.g. `vercel/vercel-ai-sdk`). Prefer IDs or coordinates — slugs can change, IDs cannot, and coordinates typically skip an extra resolver round-trip that bare slugs require under the hood (#698).
14
14
 
15
15
  ## Sources
16
16
 
17
- ### Add
17
+ ### Create
18
18
 
19
19
  ```bash
20
- releases admin source add "Next.js" --url https://github.com/vercel/next.js
21
- releases admin source add "Linear" --url https://linear.app/changelog
22
- releases admin source add "My Blog" --url https://example.com/changelog
20
+ releases admin source create "Next.js" --url https://github.com/vercel/next.js
21
+ releases admin source create "Linear" --url https://linear.app/changelog
22
+ releases admin source create "My Blog" --url https://example.com/changelog
23
23
  ```
24
24
 
25
- By default, `add` runs automated pre-checks (provider detection, feed discovery, markdown probing). Override with `--type github|scrape|feed`. Use `--skip-eval` to bypass evaluation. Batch mode (`--batch`) skips evaluation by default for speed.
25
+ By default, `create` runs automated pre-checks (provider detection, feed discovery, markdown probing). Override with `--type github|scrape|feed|agent`. Batch mode (`--batch`) skips evaluation by default for speed.
26
26
 
27
27
  Provide a feed URL explicitly when it isn't easily discoverable:
28
28
 
29
29
  ```bash
30
- releases admin source add "Claude Code" --url https://docs.anthropic.com/en/changelog \
30
+ releases admin source create "Claude Code" --url https://docs.anthropic.com/en/changelog \
31
31
  --feed-url https://docs.anthropic.com/en/changelog/rss.xml
32
32
  ```
33
33
 
@@ -37,18 +37,18 @@ Evaluate without adding:
37
37
  releases admin discovery evaluate https://linear.app/changelog
38
38
  ```
39
39
 
40
- ### Edit
40
+ ### Update
41
41
 
42
42
  ```bash
43
- releases admin source edit src_abc123 --name "New Name" # by ID (preferred)
44
- releases admin source edit next-js --url https://github.com/vercel/next.js/releases
45
- releases admin source edit my-blog --org acme # set organization
46
- releases admin source edit my-blog --no-org # remove organization
47
- releases admin source edit my-blog --type feed # change adapter type
48
- releases admin source edit my-blog --no-feed-url # clear stored feed URL
49
- releases admin source edit my-blog --markdown-url https://example.com/changelog.md
50
- releases admin source edit my-blog --primary # mark as org's primary changelog
51
- releases admin source edit my-blog --slug new-slug --confirm-slug-change
43
+ releases admin source update src_abc123 --name "New Name" # by ID (preferred)
44
+ releases admin source update next-js --url https://github.com/vercel/next.js/releases
45
+ releases admin source update my-blog --org acme # set organization
46
+ releases admin source update my-blog --no-org # remove organization
47
+ releases admin source update my-blog --type feed # change adapter type
48
+ releases admin source update my-blog --no-feed-url # clear stored feed URL
49
+ releases admin source update my-blog --markdown-url https://example.com/changelog.md
50
+ releases admin source update my-blog --primary # mark as org's primary changelog
51
+ releases admin source update my-blog --slug new-slug --confirm-slug-change
52
52
  ```
53
53
 
54
54
  Slug renames require `--confirm-slug-change` because they break existing web links.
@@ -102,10 +102,10 @@ releases admin source check next-js # one source
102
102
  ## Organizations
103
103
 
104
104
  ```bash
105
- releases admin org add "Vercel" --category developer-tools --tags typescript,edge
105
+ releases admin org create "Vercel" --category developer-tools --tags typescript,edge
106
106
  releases admin org list # summary view
107
- releases admin org show vercel # full details (accounts, tags, sources, products, aliases)
108
- releases admin org edit vercel --category developer-tools
107
+ releases admin org get vercel # full details (accounts, tags, sources, products, aliases)
108
+ releases admin org update vercel --category developer-tools
109
109
  releases admin org link vercel --platform github --handle vercel
110
110
  releases admin org tag add vercel react serverless
111
111
  releases admin org alias add anthropic claude.ai claude.com
@@ -119,20 +119,20 @@ releases admin org refresh vercel # fetch all sources +
119
119
  Products group sources under multi-product orgs (e.g. Vercel → Next.js, Turborepo, v0):
120
120
 
121
121
  ```bash
122
- releases admin product add "Next.js" --org vercel --url https://nextjs.org
122
+ releases admin product create "Next.js" --org vercel --url https://nextjs.org
123
123
  releases admin product list vercel
124
- releases admin product edit nextjs --description "React framework for production"
124
+ releases admin product update nextjs --description "React framework for production"
125
125
  releases admin product tag add nextjs react
126
126
  releases admin product alias add nextjs nextjs.org
127
- releases admin product remove nextjs # sources become unlinked, not deleted
127
+ releases admin product delete nextjs # sources become unlinked, not deleted
128
128
  releases admin product adopt nextjs --into vercel # convert an org into a product
129
129
  ```
130
130
 
131
131
  ## Releases
132
132
 
133
133
  ```bash
134
- releases admin release show rel_abc123
135
- releases admin release edit rel_abc123 --title "Fixed title" --version "v2.0.1"
134
+ releases admin release get rel_abc123
135
+ releases admin release update rel_abc123 --title "Fixed title" --version "v2.0.1"
136
136
  releases admin release delete rel_abc123
137
137
  releases admin release suppress rel_abc123 --reason "promotional content"
138
138
  releases admin release unsuppress rel_abc123
@@ -61,16 +61,16 @@ releases list --json --limit 20 --page 2 # pagination (server-side)
61
61
 
62
62
  Aliased as `releases admin source list` for discoverability within admin workflows.
63
63
 
64
- ## Show any entity
64
+ ## Get any entity
65
65
 
66
- Top-level `show` dispatches by ID prefix, and falls back to slug lookup:
66
+ Top-level `get` dispatches by ID prefix, and falls back to slug lookup:
67
67
 
68
68
  ```bash
69
- releases show rel_XqbzLaOqBFz7VSAIqx2zs # release (rel_)
70
- releases show src_abc123 # source (src_)
71
- releases show org_abc123 # organization (org_)
72
- releases show prod_abc123 # product (prod_)
73
- releases show vercel # slug fallthrough (org → product → source)
69
+ releases get rel_XqbzLaOqBFz7VSAIqx2zs # release (rel_)
70
+ releases get src_abc123 # source (src_)
71
+ releases get org_abc123 # organization (org_)
72
+ releases get prod_abc123 # product (prod_)
73
+ releases get vercel # slug fallthrough (org → product → source)
74
74
  ```
75
75
 
76
76
  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.
@@ -48,7 +48,7 @@ Before dispatching agents, collect source metadata for the target orgs. Each age
48
48
  ```bash
49
49
  for org in <slugs>; do
50
50
  echo "=== $org ==="
51
- bun src/index.ts admin org show "$org" --json 2>/dev/null | bun -e "
51
+ bun src/index.ts admin org get "$org" --json 2>/dev/null | bun -e "
52
52
  const d = JSON.parse(await Bun.stdin.text());
53
53
  const products = d.products?.map(p => p.name + ' (' + p.slug + ')').join(', ') || 'none';
54
54
  console.log('Products:', products);
@@ -117,7 +117,7 @@ NOTES
117
117
  Verify with: releases admin playbook {slug} 2>/dev/null | tail -20
118
118
  ```
119
119
 
120
- The playbook header regenerates automatically after any source add/edit/remove, and the `--notes` PATCH seeds a fresh header on first write — no separate regenerate step needed.
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.
121
121
 
122
122
  ### Verified prompt template
123
123
 
@@ -129,7 +129,7 @@ Playbooks are **skills for agents that will fetch from this org**. Write in impe
129
129
 
130
130
  ## Step 1: Gather data (run all of these)
131
131
 
132
- bun src/index.ts admin org show {slug} --json 2>/dev/null
132
+ bun src/index.ts admin org get {slug} --json 2>/dev/null
133
133
  {for each source:}
134
134
  bun src/index.ts list {source-slug} --json 2>/dev/null
135
135
  bun src/index.ts admin source fetch-log {source-slug} --json 2>/dev/null