opencoredev/social-sdk/integrate-social-sdk

Claude Code and agent skill by opencoredev/social-sdk

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use when adding the Social SDK to an application: choose a backend, connect or select authorized accounts, publish mock-first, render independent outcomes, wire verified webhooks, or test an integration.

Install

npx vskill@latest install opencoredev/social-sdk/integrate-social-sdk

SKILL.md

Integrate the Social SDK

Use this workflow when an application needs social account connections, publishing, delivery status, or provider webhooks.

Workflow

  1. Start with mockBackend() and MemoryIdempotencyStore from @opencoredev/social-sdk/testing. Build the publish request and render every per-target DeliveryOutcome state before configuring a live backend.
  2. Keep tenant and principal authorization in the application. Pass { authorization: { tenantId, principalId } } to client operations and select only account refs returned for that authenticated tenant.
  3. For account connections, call ConnectionManager.begin with an exact HTTPS redirect allowlist entry. Redirect to the real provider authorization URL. On the provider callback, preserve the raw callback URL and returned state, then call discover. Present the persisted discovered accounts for explicit selection and call select with the authenticated session. Use a configured OAuth provider factory for the token exchange.
  4. Persist connection attempts, grants, credentials, idempotency claims, and webhook inbox records in durable storage before production. The in-memory stores are for tests and local demos.
  5. Verify webhook signatures against raw request bytes, decode the normalized event, resolve provider account IDs to application tenants, and call acceptWebhook. Return an acknowledgement after the app-owned inbox accepts or quarantines the event; process pending events asynchronously and deduplicate by the returned key.
  6. Test success, partial failure, processing/unknown outcomes, unauthorized account selection, callback replay, duplicate webhooks, and unmapped-account quarantine. Never put provider secrets in browser code, examples, or test fixtures.

See the recipes in references/ for executable TypeScript recipes:

  • mock-server.ts — mock-first client and authorized publish.
  • connection-callback.ts — injected provider, discovery, and account selection.
  • render-outcomes.ts — exhaustive outcome rendering.
  • webhook-handler.ts — verify, decode, accept, and quarantine.
  • integration.test.ts — deterministic mixed-outcome coverage.

Completion criteria

An integration is ready for review when it uses a real provider callback implementation, enforces tenant membership before dispatch, persists the required state durably, renders independent outcomes, acknowledges webhooks only after inbox acceptance, and has tests for replay, duplicates, partial results, and quarantine.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/opencoredev/social-sdk/integrate-social-sdk/badge)](https://verified-skill.com/skills/opencoredev/social-sdk/integrate-social-sdk)

Something wrong with this skill or its page? Tell us.