From uceap
Start work on a Jira ticket by fetching details, creating a branch, and entering planning mode.
npx claudepluginhub uceap/claude --plugin uceapThis skill uses the workspace's default tool permissions.
When this skill is invoked with a Jira ticket ID (e.g., `/start-ticket UP-1600`), help the user start work on that ticket.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
When this skill is invoked with a Jira ticket ID (e.g., /start-ticket UP-1600), help the user start work on that ticket.
Parse Arguments:
{JIRA_PROJECT_KEY}-[0-9]+ (e.g., UP-1600)Validate Environment:
JIRA_EMAIL - User's Jira email for authenticationJIRA_API_TOKEN - API token for Jira authenticationJIRA_BASE_URL - Base URL of the Jira instanceFetch Ticket Details:
curl -s -X GET \
-H "Accept: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}"
Check for Existing Branches:
git branch -a | grep -i {TICKET_ID}
Generate Branch Name (only if creating a new branch):
{TICKET_ID}-{slug} (e.g., UP-1600-create-jira-skill)Create or Switch Branch:
git checkout {existing-branch}
git checkout -b {branch-name}
Enter Planning Mode:
/planPresent Context:
Update Ticket Status (After Plan Accepted):
curl -s -X GET \
-H "Accept: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}/transitions"
curl -s -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
-d '{"transition": {"id": "{TRANSITION_ID}"}}' \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}/transitions"
Begin Implementation (Documentation Driven Development):
a. Documentation First:
docs/ describing the feature or change from a user's perspectiveb. Tests Second (write a failing test):
.feature file) that validates the expected behaviorhttp://localhost:8080) when needed to understand page structure, DOM elements, CSS selectors, etc. Delete debug scripts before committing.c. Code Implementation (make the test pass):
composer code-sniff-feature) and static analysis (composer static-analysis-feature) and fix any issuesd. Commit all changes together:
Create Pull Request and Follow Up:
qa branch. Include a Test plan section in the PR body with manual testing steps.gh run watch --exit-statuscurl -s -X GET \
-H "Accept: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}/transitions"
curl -s -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
-d '{"transition": {"id": "{TRANSITION_ID}"}}' \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}/transitions"
pr-{PR_NUMBER} or the multidev name from the CI logs)https://pr-{PR_NUMBER}-myeap2.pantheonsite.iocurl -s -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-u "${JIRA_EMAIL}:${JIRA_API_TOKEN}" \
-d '{
"body": {
"type": "doc",
"version": 1,
"content": [...]
}
}' \
"${JIRA_BASE_URL}/rest/api/3/issue/{TICKET_ID}/comment"
gh pr edit to keep the PR description concise, since the test plan now lives on the Jira ticket