Agent skill · getstream

stream-feeds-migration

Generate the v2 -> v3 sync mapping for a Stream Activity Feeds app by sampling its live v2 activities and reactions. Use when setting up a Feeds v2 to v3 migration, when asked to build, review, or debug a v3 sync mapping, when someone asks 'what mapping do we need for our app?', or when a migrated activity lands in v3 with missing text, missing attachments, comments that are not comments, or bookmarks that went missing. Triggers on v3sync, v2 to v3, feeds migration, activity feeds migration, sync mapping, extra_context, reaction kinds, comments and bookmarks mapping. The same mapping drives both the live syncer and the bulk exporter.

What it needs

About 8k tokens when loaded.

What this skill does

Stream Feeds - v2 to v3 sync mapping Read first (every session): Glob ../stream/SKILL.md and Read ../stream/RULES.md (both ship with this skill). The Secrets rule governs every step below: the app secret never enters the conversation. RULES.md also carries the Peer skills procedure for installing and invoking any other pack skill on demand. Produce the mapping object for an app's v2 -> v3 sync configuration by looking at what the app's v2 data actually contains, rather than at what anyone believes it contains. One mapping serves both migration paths - the live syncer and the bulk exporter read the same configuration. Getting it right once fixes both; getting it wrong breaks both in the same way. --- Workflow 1. Get credentials into the environment You need the v2 app's API key and secret. The secret signs an HS256 JWT locally, stamped with iat/exp so it expires five minutes after it is minted. The secret itself is never written to the sample file, never echoed back, and never sent anywhere except as that signature. Per ../stream/RULES.md > Secrets, do not ask the user to paste the secret into the chat, and never cat, grep, or Read a .env file to find it. Ask them to export it themselves so it stays out of the transcript: The ! prefix runs the command in the user's own session, so the value lands in the environment without passing through the conversation. Confirm it took with a presence check that never prints the value: Do not proceed without a real key and secret. There is no useful analysis to do against a made-up app, and a wrong secret only produces a 403. 2. Pick the target Default to production - https://api.stream-io-api.com. Use it unless the user names a different environment (EU, dedicated, staging), in which case pass --base-url <that URL>. Do not raise alternative environments on your own; production is the assumed target and the user will say so if they mean otherwise. 3. Fetch the sample <skill-dir> is the directory holding this SKILL.md. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills getstream/stream-feeds-migration

View the source on GitHub

Browse the @skills marketplace