@buildinternet/releases-skills 0.51.0 → 0.53.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
|
@@ -49,6 +49,17 @@ releases admin source create "Claude Code" --url https://docs.anthropic.com/en/c
|
|
|
49
49
|
--feed-url https://docs.anthropic.com/en/changelog/rss.xml
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
Set source metadata **at create time** with `--keyword-allow` (feed keyword filter → `metadata.feedKeywordAllow`) or the general `--metadata-set key=value` (repeatable; same coercion as `source update --metadata-set`):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
releases admin source create "Discord" --url https://discord.com/blog --type feed \
|
|
56
|
+
--feed-url https://discord.com/blog/rss.xml --keyword-allow changelog,patch-notes
|
|
57
|
+
releases admin source create "Acme" --url https://acme.dev/changelog \
|
|
58
|
+
--metadata-set marketingFilter=true --metadata-set feedContentDepth=summary-only
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Do this rather than a follow-up `source update --metadata-set`: `create` triggers the onboard workflow's auto-fetch, which reads the source's metadata **before** any post-create edit lands. Setting a feed filter on create keeps that first ingest filtered; setting it afterward races the auto-fetch and ingests the whole unfiltered feed.
|
|
62
|
+
|
|
52
63
|
Evaluate without adding:
|
|
53
64
|
|
|
54
65
|
```bash
|
|
@@ -117,6 +128,47 @@ Notes:
|
|
|
117
128
|
- Remote concurrency defaults to 3, capped at 5. Duplicate source fetches are detected and blocked.
|
|
118
129
|
- Smart fetch backoff: sources returning no changes back off exponentially (1h → 48h); error backoff caps at 72h.
|
|
119
130
|
|
|
131
|
+
### Backfill (full history)
|
|
132
|
+
|
|
133
|
+
Walk every scrape window of a windowed `scrape` source and upsert the whole history at once — the turnkey replacement for bespoke per-source backfill scripts. Idempotent (dedups by synthesized URL), and **dry-run by default**:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
releases admin source backfill my-source # preview: counts + date range, nothing written
|
|
137
|
+
releases admin source backfill my-source --no-dry-run # write (or --commit)
|
|
138
|
+
releases admin source backfill my-source --max-windows 100 # walk further back (endpoint clamps 1–200, default 50)
|
|
139
|
+
releases admin source backfill my-source --wait # deep Firecrawl backfill: block until the async workflow finishes
|
|
140
|
+
releases admin source backfill my-source --markdown-file page.md --commit
|
|
141
|
+
cat page.md | releases admin source backfill my-source --markdown-file - --commit
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Notes:
|
|
145
|
+
|
|
146
|
+
- Accepts a slug or `src_…` ID; the CLI resolves to the typed ID before calling (the endpoint rejects bare slugs as ambiguous across orgs).
|
|
147
|
+
- `--markdown-file` supplies the full-page markdown for JS-heavy / bot-blocked sources the worker can't fetch itself. Without it the endpoint falls back to Firecrawl (if enabled on the source) then a plain fetch.
|
|
148
|
+
- Scrape sources only. Non-scrape sources, an unfetchable body, or a missing `ANTHROPIC_API_KEY`/`FIRECRAWL_API_KEY` come back as a clear error.
|
|
149
|
+
- A dry run reports `windows`, `extracted → unique`, and the date range; it warns if it hit the window cap (raise `--max-windows`).
|
|
150
|
+
- Deep Firecrawl backfills run as a durable workflow (minutes). Like `admin overview batch`, the CLI **dispatches and returns the workflow instance ID by default** (non-blocking — the agent-friendly default), then either:
|
|
151
|
+
- poll it yourself: `releases admin source backfill-status <instanceId> [--json]` (single-shot; loop on the `--json` `status` field), or
|
|
152
|
+
- pass `--wait` to block and render the report inline.
|
|
153
|
+
- Non-Firecrawl / `--markdown-file` sources stay **synchronous** — the report comes back in one call regardless of `--wait`.
|
|
154
|
+
|
|
155
|
+
### Re-extract (from a stored snapshot)
|
|
156
|
+
|
|
157
|
+
Re-run extraction over a source's captured raw body in R2 (`released-raw`) — **no live scrape, no Firecrawl credits, deterministic input**. Use it after extraction/parse logic improves to reprocess a source's history. Sibling of `backfill`, **dry-run by default**:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
releases admin source reextract my-source # preview from the latest snapshot
|
|
161
|
+
releases admin source reextract my-source --commit # write (or --no-dry-run)
|
|
162
|
+
releases admin source reextract my-source --snapshot-id raw_abc123 --commit # pin a specific capture
|
|
163
|
+
releases admin source reextract my-source --max-windows 100 --json
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Notes:
|
|
167
|
+
|
|
168
|
+
- Slug or `src_…` ID, resolved to the typed ID before calling (bare slugs rejected). Scrape sources only.
|
|
169
|
+
- Omitting `--snapshot-id` uses the most recent capture; the report's `snapshot` block names which one was used.
|
|
170
|
+
- Actionable errors surface as-is: `no_snapshot`/`snapshot_not_found` (404, none stored / wrong id), `snapshot_expired` (410, body past the 90-day R2 lifecycle — re-scrape to capture fresh), missing `RAW_SNAPSHOTS`/`ANTHROPIC_API_KEY` (503).
|
|
171
|
+
|
|
120
172
|
### Poll (cheap change detection)
|
|
121
173
|
|
|
122
174
|
```bash
|
|
@@ -153,10 +205,14 @@ releases admin org update vercel --category developer-tools
|
|
|
153
205
|
releases admin org link vercel --platform github --handle vercel
|
|
154
206
|
releases admin org tag add vercel react serverless
|
|
155
207
|
releases admin org alias add anthropic claude.ai claude.com
|
|
156
|
-
releases admin org
|
|
208
|
+
releases admin source fetch --org vercel # fetch all of an org's active sources
|
|
209
|
+
releases admin org delete vercel # reversible tombstone soft-delete
|
|
210
|
+
releases admin org delete vercel --hard --yes # permanent purge + FK cascade
|
|
157
211
|
```
|
|
158
212
|
|
|
159
|
-
`org refresh`
|
|
213
|
+
There is no `org refresh` command. To refresh an org: fetch its sources with `releases admin source fetch --org <slug>` (see **Fetch** above), then regenerate the overview with the `overview` subcommands — `releases admin overview inputs <slug>` → generate the body → `releases admin overview update <slug>` (or `releases admin overview batch` for a server-side sweep). Overview generation is agent-driven; no single command does both.
|
|
214
|
+
|
|
215
|
+
`org delete` soft-deletes by default (a reversible tombstone). `--hard` purges the row and cascade-deletes every dependent source, release, fetch-log, changelog file/chunk, summary, media asset, and webhook subscription; it prompts for a slug typeback unless `--yes` is passed (required in non-TTY/scripted contexts). You can pass a slug or an `org_…` ID either way — the CLI resolves to the typed ID the destructive path requires.
|
|
160
216
|
|
|
161
217
|
## Products
|
|
162
218
|
|
|
@@ -167,6 +223,8 @@ releases admin product create "Next.js" --org vercel --url https://nextjs.org
|
|
|
167
223
|
releases admin product create "Stripe Node" --org stripe --kind sdk
|
|
168
224
|
releases admin product list vercel
|
|
169
225
|
releases admin product list openai --kind sdk # filter by taxonomy
|
|
226
|
+
releases admin product list # every product, all orgs (adds an Org column)
|
|
227
|
+
releases admin product list --kind sdk --json # cross-org kind audit (CLI↔MCP list_catalog parity)
|
|
170
228
|
releases admin product update nextjs --description "React framework for production"
|
|
171
229
|
releases admin product update stripe-node --kind sdk # classify
|
|
172
230
|
releases admin product update stripe-node --no-kind # clear
|