--- name: get-session-card description: Retrieve the PR-Ready Share Card Markdown for an already-published Session Registry session, returned verbatim with no wrapping commentary. --- # `get-session-card` Agentic Skill Use this skill to fetch the copyable PR-Ready Share Card Markdown for a session that has already been published, independent of the PR-creation flow. This is useful whenever the card is needed somewhere other than a freshly-created PR body — pasting into an existing PR/MR by hand, a Slack message, a wiki page, or anywhere else a collaborator-facing card is wanted. ## Transport Contract The `session-registry` MCP tools are the only interface to this workflow. Do not read the plugin's own files, run a package manager or build step, start the MCP server yourself, or write your own MCP client. Tools may load lazily, so call the tool even if you do not see it listed yet. If it is genuinely unresolvable, stop immediately and tell the user the `session-registry` MCP server is not connected in this host. ## When to Use Invoke this skill when a user: - Types `/get-session-card` - Asks to "get the share card", "give me the PR card markdown for this session", "show me the share card", or "get the share card for ``" ## `linkId` Resolution `get_share_card` takes exactly one input: `linkId` — the last path segment of the collaborator share URL (`.../session//`), and also the literal `linkId` field present in any `save_session` or `publish_session` tool result JSON. Resolve it in this order, and **never** guess or fabricate a value: 1. **Explicit argument given.** If the user supplies a bare `linkId` or a full `shareUrl` directly (as an argument to the skill invocation), always use it — parsing the exact last path segment if a `shareUrl` was given. This takes priority over everything below and never triggers a question. 2. **No argument given — scan this conversation** for every `save_session`/`publish_session` tool result and collect each result's distinct `linkId` (dedupe exact matches; a retry of the same publish reuses the same `linkId` and is not a second distinct publish): - **Exactly one distinct `linkId` found:** infer it silently and proceed straight to calling `get_share_card`. Do **not** ask the user anything in this case — a single prior publish this conversation is unambiguous. - **Two or more distinct `linkId`s found:** ambiguous. Ask the user which session they mean, listing each known candidate (by title, summary, or share URL already visible from those earlier results) or accepting a `linkId`/`shareUrl` they supply directly. - **Zero found:** there is nothing to infer. Ask the user for the `linkId` or `shareUrl` directly, same as the ambiguous case. 3. Never reuse a `linkId` from a different conversation/session, and never assemble or approximate one from fragments of other identifiers. ## Execution Protocol 1. Resolve `linkId` per the rule above. In the single-candidate auto-inference case, skip straight to step 2 — do not ask a confirmation question first. 2. Call `get_share_card` with `{ linkId }`. 3. **If the result is `{ kind: "available", markdown }`:** reply with **only** the `markdown` field's content, copied verbatim, character-for-character. Do not add a leading sentence ("Here's your share card:"), a trailing note, a wrapping code fence, or any other text in that same message — the message's entire content **is** the markdown, nothing else. This is a hard requirement: never rationalize adding a short intro or confirmation line "just this once." 4. **If the result is `{ kind: "unavailable" }`:** there is no card content to protect from added prose, so respond in plain, brief text stating that the share card is not currently available (the link may have been revoked, expired, or is otherwise not resolvable) and that there is nothing to display. ## Safety Rules - Ownership is enforced entirely server-side from the caller's configured bearer token; never ask the user to prove ownership some other way. - Never fabricate, approximate, or partially reconstruct card markdown — only ever emit the exact `markdown` string returned by the tool. - If the tool reports the link was not found or not owned by the caller, say so plainly rather than retrying with a different guessed `linkId`. ## Examples ```powershell /get-session-card ``` ```text User: get me the share card for the session I just published ``` ```text User: get-session-card https://sessionregistry.io/session/abc123/def456 ```