Review Release Notes
chef/chef-web-docs
Read a release notes file and edit it using Jira release data and GitHub pull requests as co-equal, optional sources.
Link the current Claude Code session to a ticket (Linear, Jira, GitHub Issues, or GitHub Pull Requests) and cache its title/status in karma.
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-session --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/link-ticket-to-session .claude/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .claude/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-sessionType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-session --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/link-ticket-to-session .agents/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .agents/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-session --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/link-ticket-to-session .cursor/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .cursor/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JayantDevkar/claude-code-karma.git --path skills/link-ticket-to-session--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-session --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/link-ticket-to-session .gemini/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .gemini/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-sessionInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/link-ticket-to-session .github/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .github/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JayantDevkar/claude-code-karma link-ticket-to-session --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JayantDevkar/claude-code-karma.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/link-ticket-to-session .opencode/skills/link-ticket-to-session && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "link-ticket-to-session" agent skill from https://github.com/JayantDevkar/claude-code-karma/tree/main/skills/link-ticket-to-session into .opencode/skills/link-ticket-to-session/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "link-ticket-to-session", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
link-ticket-to-sessionLink the current Claude Code session to a ticket (Linear, Jira, GitHub Issues, or GitHub Pull Requests) and cache its title/status in karma.
Link Ticket To Session is an agent skill from JayantDevkar/claude-code-karma. Link the current Claude Code session to a ticket (Linear, Jira, GitHub Issues, or GitHub Pull Requests) and cache its title/status in karma. Use when the user explicitly asks to link, attach, associate, or connect this session to a ticket, issue, or PR — e.g. "/link-ticket-to-session ABC-123", "link this session to LINEAR-42", "associate this work with issue
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. It works with GitHub, Jira and Model Context Protocol. The repository describes itself as: Dashboard for monitoring claude code sessions. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 98442cd. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bashmcp__linearmcp__claude_ai_Linearmcp__plugin_github_githubmcp__atlassianFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
linear.appgithub.comacme.atlassian.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Link Ticket To Session loads about 1.8k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 721 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, mcp__linear, mcp__claude_ai_Linear, mcp__plugin_github_github, mcp__atlassianAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from JayantDevkar/claude-code-karma at commit 98442cd, republished under its Apache-2.0 licence (© JayantDevkar). 721 words, ~1,804 tokens.
.claude/skills/link-ticket-to-session/SKILL.md (or your agent's skills folder).You are linking the current Claude Code session (${CLAUDE_SESSION_ID}) to: $ARGUMENTS
Karma is a read-only observer on the user's machine. It stores the link and caches title/status for display, but never writes back to the ticket provider. You fetch metadata via the user's already-configured MCP server.
Karma's API URL comes from KARMA_API_URL (set by users on non-default
ports/hosts) with http://localhost:8020 as fallback. Inline
${KARMA_API_URL:-http://localhost:8020} in every curl below — bash
variables don't persist across separate Bash tool calls, so a top-of-script
assignment would be empty by the time the next curl runs.
Recognized forms:
| Provider | Short ref | URL forms |
|---|---|---|
| Linear | LINEAR-123 | https://linear.app/.../issue/ABC-123 |
| Jira | PROJ-45 | https://*.atlassian.net/browse/PROJ-45 |
| GitHub Issue | owner/repo#42 | https://github.com/owner/repo/issues/42 |
| GitHub PR | owner/repo#42 | https://github.com/owner/repo/pull/42 |
GitHub issues and pull requests share a single numbering namespace —
owner/repo#42 could be either. The URL kind (/issues/ vs /pull/)
is the only signal, and karma's backend preserves it, so when you have
a URL keep it intact when POSTing (Step 4). For a bare owner/repo#N
with no URL, default to /issues/N — GitHub auto-redirects to /pull/N
when N is actually a PR, so the link still resolves.
A bare #N (no owner/repo) is not accepted — always qualify with
owner/repo#N.
Set two variables you'll use below:
<provider> ∈ linear | jira | github<kind> ∈ issue | pull_request (derived from URL path)For Linear and Jira this collapses to just <provider>.
Pick the right MCP tool for the provider and kind:
| Provider · Kind | MCP tool |
|---|---|
linear | Linear MCP — search/fetch issue by key |
jira | Atlassian MCP — fetch by key |
github · issue | mcp__plugin_github_github__issue_read, method get |
github · pull_request | mcp__plugin_github_github__pull_request_read, method get |
Calling the wrong GitHub method silently returns the wrong thing because both shapes look superficially similar — so derive the kind first.
If the relevant MCP isn't installed, skip this step and proceed to Step 4 without title/status. Karma will create the link; the title/status fields stay NULL and can be refreshed later via Step 5.
Pull at minimum: title, status (or state), url. Strip large
fields — karma caps metadata_json at 64 KB and a full PR payload
easily exceeds that. Specifically drop:
body, commits, files, reviewers, comments, labels,
requested_reviewers, head / base blobs beyond refbody, comments, reactions, labelsdescription, comments, subscribers, attachmentsThe status you cache should reflect what the provider says now, not a
generic "open/closed". Karma's UI normalizes these to canonical buckets
at render time, so faithful provider language is the right input:
Linear: workflow state name verbatim — e.g. Backlog, In Progress,
In Review, Done, Cancelled (workspace-defined; don't normalize).
Jira: workflow state name — e.g. To Do, In Progress, In Review,
Done.
GitHub issue: open or closed.
GitHub PR: derive from the flags the PR API returns:
state | draft | merged | Cache as |
|---|---|---|---|
open | true | — | draft |
open | false | — | open |
closed | — | true | MERGED |
closed | — | false | closed |
The url field should be the URL you actually have — /pull/N for PRs,
/issues/N for issues. Don't rewrite it. Karma's parser preserves
the path segment; the UI uses it to distinguish PRs from issues.
curl -s -X POST "${KARMA_API_URL:-http://localhost:8020}/sessions/${CLAUDE_SESSION_ID}/tickets" \
-H 'Content-Type: application/json' \
-d '{"ref":"<key>","provider":"<provider>","url":"<url>","source":"slash_command"}'For GitHub, <key> is always owner/repo#N regardless of kind — the
URL field carries the issue/PR distinction.
curl -s -X PUT "${KARMA_API_URL:-http://localhost:8020}/tickets/<provider>/<key>" \
-H 'Content-Type: application/json' \
-d '{"title":"<title>","status":"<status>"}'For GitHub keys with / and #, URL-encode the key in the path:
octocat/repo#42 → octocat%2Frepo%2342.
One line. For GitHub, distinguish the kind so the user knows what they just attached:
Linked session to LINEAR-123 (Fix login bug, In Progress) — open at https://linear.app/...Linked session to PROJ-45 (Migrate auth, Done) — open at https://acme.atlassian.net/browse/PROJ-45Linked session to octocat/repo#42 [issue] (Empty state lies, open) — open at .../issues/42Linked session to octocat/repo#42 [PR] (Fix linting, MERGED) — open at .../pull/42KARMA_API_URL overrides for custom
port or remote host.(session, ticket); re-running upgrades the
link_source if previously set by branch-detect or dashboard. Order:
slash_command > dashboard > branch.karma not running at ${KARMA_API_URL:-http://localhost:8020} so they
see what was tried. Don't silently succeed.#N means a single karma row (one
(provider, external_key) pair) covers both views of that number.
The URL field is what tells karma's UI which one to render. Send the
URL you actually have.© JayantDevkar, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/link-ticket-to-session of JayantDevkar/claude-code-karma.
Open the folder on GitHubat commit 98442cd
Link Ticket To Session next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Link Ticket To Session this skillJayantDevkar/claude-code-karma | 329 | — | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| Review Release Noteschef/chef-web-docs | 143 | — | ~5.2k | Automated safety check: Pass | Custom licence | |
| Plane Release Notes Generatormakeplane/plane | 60k | — | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Mariadb Operator PR Reviewmariadb-operator/mariadb-operator | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Code Reviewnteract/semiotic | 2.7k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Issue Triage Loopcobusgreyling/loop-engineering | 11k | — | ~522 | Automated safety check: Pass | MIT |
chef/chef-web-docs
Read a release notes file and edit it using Jira release data and GitHub pull requests as co-equal, optional sources.
makeplane/plane
Builds categorized release notes for a Plane release pull request from its commits and writes them into the PR description, for both the plane-cloud and plane-ee repos.
mariadb-operator/mariadb-operator
Perform a structured maintainer-style PR review for the mariadb-operator repository.
nteract/semiotic
Review Semiotic pull requests for behavioral bugs, regressions, contract drift, and missing evidence.
cobusgreyling/loop-engineering
Scans open GitHub issues and discussions, flags duplicates, scores priority and proposes labels into issue-triage-state.md without ever labeling or closing.
DynamoDS/Dynamo
Generate PR descriptions for Dynamo that align with the team template section names and order.
Works with
Categories
Link the current Claude Code session to a ticket (Linear, Jira, GitHub Issues, or GitHub Pull Requests) and cache its title/status in karma. Link Ticket To Session is an agent skill from JayantDevkar/claude-code-karma. Link the current Claude Code session to a ticket (Linear, Jira, GitHub Issues, or GitHub Pull Requests) and cache its title/status in karma.
Link Ticket To Session fits situations like: the user explicitly asks to link; connect this session to a ticket.
Run `npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a claude-code`. Or copy the skill folder (skills/link-ticket-to-session in JayantDevkar/claude-code-karma) into .claude/skills/link-ticket-to-session in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a codex`. Or copy the skill folder (skills/link-ticket-to-session in JayantDevkar/claude-code-karma) into .agents/skills/link-ticket-to-session in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JayantDevkar/claude-code-karma --skill link-ticket-to-session -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/link-ticket-to-session, .gemini/skills/link-ticket-to-session, .github/skills/link-ticket-to-session and .opencode/skills/link-ticket-to-session in your project.
Going by SKILL.md and its folder, Link Ticket To Session needs the command-line tools its instructions call (curl). Its frontmatter pre-approves these tools: Bash, mcp__linear, mcp__claude_ai_Linear, mcp__plugin_github_github, mcp__atlassian.
SKILL.md names 3 domains. In commands or code: linear.app, github.com and acme.atlassian.net; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Link Ticket To Session is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Link Ticket To Session: Review Release Notes (chef/chef-web-docs, 143 stars), Plane Release Notes Generator (makeplane/plane, 60k stars), Mariadb Operator PR Review (mariadb-operator/mariadb-operator, 1k stars) and Code Review (nteract/semiotic, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JayantDevkar (a GitHub user) maintains it in JayantDevkar/claude-code-karma, which has 329 GitHub stars. The repository was last updated on September 28, 2026.
Source: JayantDevkar/claude-code-karma on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.