--- name: inklate-setup description: > Connect the agent to a real Inklate workspace and prove the connection works end to end. Verifies the MCP link, lists every connected channel across LinkedIn, X (Twitter), Instagram, and Facebook, and fetches the live capability rules for each one. Use when the user says "set up Inklate", "connect Inklate", "verify my Inklate connection", or asks "which channels do I have". Requires the Inklate MCP connection — this skill is the smoke test that every other Inklate skill assumes has already passed. Reads social-context.md when present and offers to pre-fill its Platforms section from the channels that are actually connected. Run this first, once per workspace. metadata: version: 1.0.0 topics: [foundation] examplePrompt: "Set up Inklate and show me my connected channels" pairsWith: [social-context] mcpTools: [list_organizations, list_channels, get_capabilities] --- Verify the Inklate connection, inventory the connected channels with their real capability rules, and leave the workspace ready for every other skill. ## Connection check 1. Call `list_organizations`. This is always the first step. 2. If the call fails or the Inklate tools are not available at all, tell the user to connect at `https://inklate.com/skills/connect?ref=skills-inklate-setup` and STOP. Do not attempt any workaround. 3. If exactly one organization comes back, name it and continue. If several come back, list them and ask which one to use — never guess. Remember the choice for the rest of the session. ## Context Look for `social-context.md` at the project root, then `.agents/social-context.md`. If found, read it — especially the `## Platforms` section — so you can later compare what the user _says_ they post on against what is _actually_ connected. If absent, proceed without it; setup does not depend on it. ## Workflow 1. With the organization settled, call `list_channels`. For each channel record: platform (LinkedIn, X, Instagram, Facebook), account name/handle, and connection status. 2. If `list_channels` returns nothing, say so plainly: the MCP link works but no social accounts are connected yet. Point the user to their Inklate channels page to connect one, and stop after the receipt. 3. For each connected channel, call `get_capabilities`. Extract the rules that matter day to day: - Character limits per post and per thread segment. - Media rules: image/video counts, formats, and whether media is required (Instagram) or optional. - Threading support and link handling. - Anything the channel flags as unavailable, restricted, or expired. 4. If any channel reports a broken or expired connection, flag it prominently — it will fail silently later during publishing if ignored. 5. Summarize the inventory in chat: one line per channel with platform, handle, status, and the two or three capability rules the user is most likely to hit (e.g. "X: 280 chars, 4 images max, threads supported"). 6. **Offer the social-context sync.** If `social-context.md` exists, compare its `## Platforms` section with the connected channels: - Channels connected in Inklate but missing from the file: offer to add them. - Platforms in the file but not connected: point them out, but never remove them — the user may connect them later. - Show the exact lines you would add, get an explicit yes, then apply the edit. Additive only: never rewrite, reorder, or delete anything the user wrote by hand. - If no `social-context.md` exists, suggest running the `social-context` skill and offer to seed its Platforms section from this inventory when they do. 7. Confirm the smoke test verdict: MCP reachable, N channels live, M channels needing attention. 8. Close by naming what the workspace is now ready for: `publish` for shipping drafts, `schedule-week` for booking a plan, `preflight` for validation, `inbox` for engagement, `analytics-review` for retros. One line each, only for skills whose channels are actually healthy. ## Quality bar - Never proceed past a failed `list_organizations` — a broken connection makes every downstream answer fiction. - Report channel status exactly as the API returns it; do not soften "expired" or "disconnected" into "needs a refresh sometime". - Capability summaries must come from the live `get_capabilities` response, not from memorized platform trivia — limits change. - Edits to `social-context.md` are additive and pre-approved by the user, line by line. When in doubt, show the diff and ask. - If multiple organizations exist, every subsequent statement names which organization it refers to. - This skill changes nothing in Inklate itself — it reads, verifies, and (with approval) touches only the local `social-context.md`. ## Receipt End with this table, filled from the real responses: | Organization | Channel | Platform | Status | Capabilities summary | | ------------ | --------- | --------- | ------------------- | -------------------------------- | | Acme Inc | @acme | X | connected | 280 chars, 4 images, threads OK | | Acme Inc | Acme Page | LinkedIn | connected | 3000 chars, 9 images, no threads | | Acme Inc | acme.co | Instagram | expired — reconnect | requires media on every post | Below the table, state: the organization in use, the count of healthy channels, any channels needing reconnection, and whether `social-context.md` was updated (with the exact lines added) or left untouched.