add-component
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator…
End-to-end release automation — reads commits since last tag, infers semver bump, drafts changelog, creates release PR, merges it, waits for CI green, tags, and monitors the Docker build to completion. Use when the user says: prepare release, cut a release, bump version, create
$ npx -y skills add jpicklyk/task-orchestrator --skill prepare-release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/prepare-releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
End-to-end release automation — reads commits since last tag, infers semver bump, drafts changelog, creates release PR, merges it, waits for CI green, tags, and monitors the Docker build to completion. Use when the user says: prepare release, cut a release, bump version, create
name: prepare-release description: "End-to-end release automation — reads commits since last tag, infers semver bump, drafts changelog, creates release PR, merges it, waits for CI green, tags, and monitors the Docker build to completion. Use when the user says: prepare release, cut a release, bump version, create release PR, ship a new version, tag a release, deploy new version, or when all feature PRs are merged and it is time to release." disable-model-invocation: true
End-to-end release workflow. Reads commits since the last release tag, infers the semver bump, drafts a user-facing changelog, confirms with you, creates a release PR, merges it, verifies CI is green, tags the release, and monitors the Docker build to completion.
**Usage:** `/prepare-release`
Run this from any branch after all feature PRs have been merged to `main`.
---
Switch to `main` and pull latest:
git checkout main git pull origin main git status
If `git status` shows uncommitted changes, stop and resolve them before continuing. The working tree must be clean.
---
git describe --tags --abbrev=0
Note this as `LAST_TAG` (e.g., `v2.0.2`). All commits after this tag are candidates for the release.
If this command fails (no tags exist yet), use the full history — note the first commit hash as the baseline and treat the release as the initial version.
---
git log <LAST_TAG>...HEAD --oneline git diff <LAST_TAG>...HEAD --stat git diff <LAST_TAG>...HEAD --name-only
Collect the full output of each. Do not truncate.
---
**This is not a raw dump of commit messages.** Analyze the material and produce a curated, user-facing summary.
Ignore commits that match any of the following:
`Merge branch`, `version bump`, `release:`
`.github/`, `Dockerfile`, `docker-compose.yml`, `scripts/`, `*.md` files with no API impact
Use only these categories (omit any that have no entries):
Rules for each bullet:
Check if any files under `claude-plugins/` changed since the last tag:
git diff <LAST_TAG>...HEAD --name-only -- claude-plugins/
If the output is non-empty, plugin content changed. Also check if any server source files (Kotlin, migrations, Gradle config) changed:
git diff <LAST_TAG>...HEAD --name-only -- current/src/ current/build.gradle.kts gradle/
Classify the release type:
**Read the current plugin version from the authoritative source** — do not assume it matches any git tag. The version in the repository files may have been bumped in a previous release:
cat claude-plugins/task-orchestrator/.claude-plugin/plugin.json | grep '"version"'
Determine the plugin bump level using the same semver rules as the server version, but scoped to plugin content:
| Condition | Plugin Bump | |-----------|-------------| | Breaking change to skill interface, hook behavior, or orchestration context contract (including removing a shipped component) | **major** | | New skill, new hook, new orchestration component added | **minor** | | Content fixes, wording, skill adjustments, script tweaks | **patch** |
Note the plugin bump level separately from the server bump level — they are independent. If no plugin files changed, skip plugin versioning entirely (server-only release).
---
**Plugin-only release:** If the release type is `plugin-only`, skip the server bump entirely. The server version in `version.properties` stays unchanged. Only the plugin version (determined in Step 4d) is bumped. Proceed to Step 6 with the server version as-is and the plugin version as the new value.
**Server or both release:** Examine the synthesized changes and determine the bump level:
| Condition | Bump | |-----------|------| | Any breaking API change (removed tool, renamed/removed required parameter, incompatible response schema) | **major** | | New tool, new capability on existing tool, new config option, new query parameter | **minor** | | Bug fix, performance improvement, docs only, internal refactor with no API change | **patch** |
If multiple conditions apply, use the highest applicable level.
State the bump level and the one-sentence reason. Example: > Bump: **minor** — GitHub wiki CI sync and release automation added (new capability, no breaking change).
Calculate the proposed new version:
-
Server-enforced workflow discipline for AI agents. Prompt-based frameworks hope the LLM follows instructions. This one blocks the call if it doesn't.
Checklists for adding a new MCP tool, a new Flyway database migration, or a new Gradle dependency to the Task Orchestrator…
Compatibility assessment for items with the needs-api-compat-review trait. Evaluates the MCP tool surface and the REST surface…
Guides the full lifecycle of a feature-implementation tagged MCP item (the feature container) — from queue through review.…
End-to-end workflow for taking MCP work items from backlog to merged PR. Handles git branching, schema-driven planning,…
SQLite migration assessment for items with the needs-migration-review trait. Evaluates schema changes, table recreation patterns,…
Performance impact assessment for items with the needs-perf-review trait. Evaluates hot paths, query patterns, and measurement…