@buildinternet/releases-skills 0.23.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 +1 -1
- package/skills/finding-changelogs/SKILL.md +3 -3
- package/skills/managing-sources/SKILL.md +13 -13
- package/skills/parsing-changelogs/SKILL.md +4 -4
- package/skills/releases-cli/SKILL.md +6 -6
- package/skills/releases-cli/references/admin.md +25 -25
- package/skills/releases-cli/references/reader.md +7 -7
- package/skills/seeding-playbooks/SKILL.md +3 -3
package/package.json
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
18
|
-
| Edit source | `releases admin source
|
|
19
|
-
| Remove source | `releases admin source
|
|
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
|
|
25
|
-
| Edit org | `releases admin org
|
|
26
|
-
| Show org | `releases admin org
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
185
|
-
- `releases admin source
|
|
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
|
|
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
|
|
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
|
|
180
|
-
4. **If no usable releases** — remove the source. CLI: `releases admin source
|
|
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
|
|
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
|
|
43
|
+
releases admin source create "Linear" --url https://linear.app/changelog
|
|
44
44
|
releases admin source fetch <slug> --max 50
|
|
45
|
-
releases admin org
|
|
46
|
-
releases admin product
|
|
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
|
|
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
|
-
###
|
|
17
|
+
### Create
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
releases admin source
|
|
21
|
-
releases admin source
|
|
22
|
-
releases admin source
|
|
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, `
|
|
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
|
|
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
|
-
###
|
|
40
|
+
### Update
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
releases admin source
|
|
44
|
-
releases admin source
|
|
45
|
-
releases admin source
|
|
46
|
-
releases admin source
|
|
47
|
-
releases admin source
|
|
48
|
-
releases admin source
|
|
49
|
-
releases admin source
|
|
50
|
-
releases admin source
|
|
51
|
-
releases admin source
|
|
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
|
|
105
|
+
releases admin org create "Vercel" --category developer-tools --tags typescript,edge
|
|
106
106
|
releases admin org list # summary view
|
|
107
|
-
releases admin org
|
|
108
|
-
releases admin org
|
|
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
|
|
122
|
+
releases admin product create "Next.js" --org vercel --url https://nextjs.org
|
|
123
123
|
releases admin product list vercel
|
|
124
|
-
releases admin product
|
|
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
|
|
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
|
|
135
|
-
releases admin release
|
|
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
|
-
##
|
|
64
|
+
## Get any entity
|
|
65
65
|
|
|
66
|
-
Top-level `
|
|
66
|
+
Top-level `get` dispatches by ID prefix, and falls back to slug lookup:
|
|
67
67
|
|
|
68
68
|
```bash
|
|
69
|
-
releases
|
|
70
|
-
releases
|
|
71
|
-
releases
|
|
72
|
-
releases
|
|
73
|
-
releases
|
|
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
|
|
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
|
|
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
|
|
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
|