add-mcp-tools
Guide for adding new MCP tools with consistent patterns for schemas, tool definitions, registry updates, and Better Auth…
Assemble a release from a batch of Jira issues — one release branch, pull request, preview and tracking issue per repository — and, when a person says to ship it, merge it and move the cards on. Insert into the prompt of a run started on a batch of issues.
$ npx -y skills add decocms/studio --skill jira-release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/jira-releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Assemble a release from a batch of Jira issues — one release branch, pull request, preview and tracking issue per repository — and, when a person says to ship it, merge it and move the cards on. Insert into the prompt of a run started on a batch of issues.
name: jira-release description: Assemble a release from a batch of Jira issues — one release branch, pull request, preview and tracking issue per repository — and, when a person says to ship it, merge it and move the cards on. Insert into the prompt of a run started on a batch of issues. disable-model-invocation: true
Insert this into the prompt of a run you start on the issues that ship together ("one run for all of them"). The issues are in your opening message, web links included; every Jira tool takes `issueKey` to say which issue it is about, and reaches any issue on the board. Your team's own skill says how its releases are named, which columns mean what, and how to build its sites — where it disagrees with this text, it wins.
It is ordinary text once inserted — read it, cut what does not apply to your team, add what does.
---
You are releasing work that has already been implemented and reviewed: the issues above, each carrying its pull request(s) as web links.
**There are two phases, and this run does one.** Assemble, unless the person's prompt says in words to ship a release that is already assembled — then ship. Shipping merges to the main branch, which for many teams is the deploy; never drift from assembling into shipping on your own.
One release per repository: its own branch, pull request, preview and tracking issue, so a rollback stays inside one site. Your team's skill says how an issue maps to a repository; an issue with pull requests in several repositories is in each of those releases.
For each issue, find its open pull request(s) from the web links (`gh pr view <url> --json state,headRefName,mergeable,title`). Leave an issue out — and say why on the issue and in the release — when it has no open pull request, or its checks fail because of its own change.
In a checkout of the repository (`mcp__studio__TASK_ADD_REPO` accumulates them):
git fetch origin git rev-parse origin/main # the base — record it git checkout -B release/YYYY-MM-DD origin/main git merge --no-ff -m "Merge <KEY> (PR #<n>): <title>" origin/<head-branch> # per issue
commit is the issue's unit: `git revert -m 1 <commit>` takes exactly one issue back out of the main branch later.
down each one — file, which issues, what you kept — for the tracking issue. A conflict you cannot resolve without changing what one issue does leaves that issue out.
is open, merging only the issues it lacks; otherwise start over from the main branch.
Build and test the release branch the way your team's skill says. Compare against the base, not against zero: a failure the main branch has too is not the release's, so run the same command on a clean checkout of the base and report the delta.
`release: <site> YYYY-MM-DD`. Its body tables each issue with its pull request, and says it is not to be merged until the release is approved.
post it as a comment, but a release branch often gets none: the preview is then the GitHub deployment on the head commit — `gh api "repos/<owner>/<repo>/deployments?sha=<head>"`, and the `environment_url` of that deployment's latest status. Poll that, not the comments.
Create it last, when there is everything to say (`mcp__studio__JIRA_ISSUE_CREATE`): the title, type, sprint and points your team's skill gives, `relatesTo` every issue in this release, and a description with:
Calling it again with the same title returns the same issue, so a restarted run does not open a second one. Then, on it:
(`key: "pull-request"`) and the preview (`key: "preview"`);
Move every included issue AND the tracking issue to the column your team reviews releases in (`mcp__studio__JIRA_ISSUE_TRANSITION`). An issue you left out stays where it is, with a comment saying why. Then stop, and say plainly that the release is assembled and waits for a person to approve and ship it.
Only when the person's prompt says so. The batch holds the tracking issue and the issues it ships; the release pull request is on the tracking issue.
1. **Nothing moved since the approval?** Each issue's pull request is still open, and its head is the commit the release branch merged (`git merge-base --is-ancestor`). An issue that got new commits since: merge them into the release branch and say so, or leave the issue out if the change is more than a fix of the approved one — then it needs approving again. 2. **Bring the main branch in.** If it moved since the base, merge it into the release branch, resolve, build again and push. The release must contain the current main branch before it lands. 3. **Merge the release pull request with a merge commit** — `gh pr merge <release-pr> --merge`, never squash, never rebase: the per-issue merge commits are what keeps each issue revertable on its own. Each issue's own pull request then shows as merged, since its commits are in the main branch; confirm that for every one. 4. **Report and move, per issue**, as it is confirmed: a comment with the commit that landed it (`git log --merges --gr
Open-source control plane for your AI agents. Connect tools, hire agents, track every token and dollar
Guide for adding new MCP tools with consistent patterns for schemas, tool definitions, registry updates, and Better Auth…
Prepare code for review by running quality checks, creating conventional commits, and opening pull requests. Use when the user…
Run Studio locally with chats and task runs executing in real Freestyle sandboxes, reachable through an ngrok tunnel. Use when…
Operate the user's deco Studio (decocms) organization from the terminal with their own login. Use when the user asks to read or…
Create and maintain an org's brand as a folder the whole platform reads: colors, type, voice, logo and a deck theme. Use this…
Read and extract text, tables, and structure from .docx Word documents. Use when the user uploads or references a Word file to…