Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Atlassian ecosystem integration covering Jira project management, Confluence documentation, Bitbucket source control, and cross-product automation workflows
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
This skill provides comprehensive integration with the Atlassian ecosystem including Jira, Confluence, and Bitbucket. Use it for project management automation, documentation workflows, and source control operations.
# Set environment variables
export ATLASSIAN_DOMAIN="your-domain.atlassian.net"
export ATLASSIAN_EMAIL="your-email@example.com"
export ATLASSIAN_API_TOKEN="your-api-token"
# Test authentication
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/myself" | jq '.displayName'
.env# Get issue details
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/PROJECT-123" | jq '.'
# Create issue
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue" \
-d '{
"fields": {
"project": {"key": "PROJECT"},
"summary": "Issue summary",
"description": {
"type": "doc",
"version": 1,
"content": [{"type": "paragraph", "content": [{"type": "text", "text": "Description"}]}]
},
"issuetype": {"name": "Task"},
"priority": {"name": "Medium"},
"assignee": {"accountId": "account-id"}
}
}'
# Update issue
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X PUT \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/PROJECT-123" \
-d '{"fields": {"summary": "Updated summary", "priority": {"name": "High"}}}'
# Search issues with JQL
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/search?jql=project=PROJECT+AND+status='In+Progress'&maxResults=50" | jq '.issues[].key'
# Add comment
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/PROJECT-123/comment" \
-d '{
"body": {
"type": "doc",
"version": 1,
"content": [{"type": "paragraph", "content": [{"type": "text", "text": "Comment text"}]}]
}
}'
# Get available transitions
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/PROJECT-123/transitions" | jq '.transitions[] | {id, name}'
# Transition issue (e.g., move to Done)
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/PROJECT-123/transitions" \
-d '{"transition": {"id": "31"}}'
# Get board sprints (requires Jira Software)
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/agile/1.0/board/BOARD_ID/sprint?state=active" | jq '.'
# Move issues to sprint
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/agile/1.0/sprint/SPRINT_ID/issue" \
-d '{"issues": ["PROJECT-123", "PROJECT-124"]}'
# Get epics for project
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/search?jql=project=PROJECT+AND+issuetype=Epic" | jq '.issues[] | {key: .key, summary: .fields.summary}'
# Link issues (parent/child, blocks, etc.)
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issueLink" \
-d '{
"type": {"name": "Blocks"},
"inwardIssue": {"key": "PROJECT-123"},
"outwardIssue": {"key": "PROJECT-124"}
}'
# Get space pages
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content?spaceKey=SPACE&type=page&limit=25" | jq '.results[] | {id, title}'
# Create page
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content" \
-d '{
"type": "page",
"title": "Page Title",
"space": {"key": "SPACE"},
"body": {
"storage": {
"value": "<p>Page content in HTML</p>",
"representation": "storage"
}
}
}'
# Update page (requires current version number)
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X PUT \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content/PAGE_ID" \
-d '{
"type": "page",
"title": "Updated Title",
"version": {"number": 2},
"body": {
"storage": {
"value": "<p>Updated content</p>",
"representation": "storage"
}
}
}'
# Search pages
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content/search?cql=space=SPACE+AND+title~'search+term'" | jq '.'
# Create page from template
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content" \
-d '{
"type": "page",
"title": "Meeting Notes 2024-01-15",
"space": {"key": "SPACE"},
"ancestors": [{"id": "PARENT_PAGE_ID"}],
"body": {
"storage": {
"value": "<ac:structured-macro ac:name=\"info\"><ac:rich-text-body><p>Meeting notes content</p></ac:rich-text-body></ac:structured-macro>",
"representation": "storage"
}
}
}'
# List repositories
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://api.bitbucket.org/2.0/repositories/WORKSPACE" | jq '.values[] | {name: .name, clone: .links.clone}'
# Create pull request
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
"https://api.bitbucket.org/2.0/repositories/WORKSPACE/REPO/pullrequests" \
-d '{
"title": "Feature: Add new capability",
"description": "PR description",
"source": {"branch": {"name": "feature-branch"}},
"destination": {"branch": {"name": "main"}},
"reviewers": [{"account_id": "reviewer-account-id"}]
}'
# Get PR status
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://api.bitbucket.org/2.0/repositories/WORKSPACE/REPO/pullrequests/PR_ID" | jq '{state, title, author}'
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@atlassian/mcp-atlassian"],
"env": {
"ATLASSIAN_DOMAIN": "your-domain.atlassian.net",
"ATLASSIAN_EMAIL": "your-email@example.com",
"ATLASSIAN_API_TOKEN": "your-api-token"
}
}
}
}
Add to .claude/settings.json under mcpServers for agent-studio integration.
jira_get_issue — Retrieve issue details by keyjira_create_issue — Create new Jira issuejira_update_issue — Update issue fieldsjira_search_issues — JQL-based searchjira_transition_issue — Move issue through workflowconfluence_get_page — Retrieve Confluence pageconfluence_create_page — Create new pageconfluence_update_page — Update existing pageconfluence_search — CQL-based content search# Extract Jira issue key from git branch and update status
BRANCH=$(git branch --show-current)
ISSUE_KEY=$(echo "$BRANCH" | grep -oP '[A-Z]+-[0-9]+')
if [ -n "$ISSUE_KEY" ]; then
# Move to In Progress when branch is created
TRANSITION_ID=$(curl -s -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/$ISSUE_KEY/transitions" | \
jq -r '.transitions[] | select(.name == "In Progress") | .id')
curl -s -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST -H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/rest/api/3/issue/$ISSUE_KEY/transitions" \
-d "{\"transition\": {\"id\": \"$TRANSITION_ID\"}}"
echo "Moved $ISSUE_KEY to In Progress"
fi
# Generate sprint report page in Confluence
SPRINT_ID="123"
SPACE_KEY="TEAM"
# Get sprint issues
ISSUES=$(curl -s -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
"https://$ATLASSIAN_DOMAIN/rest/agile/1.0/sprint/$SPRINT_ID/issue" | \
jq -r '.issues[] | "- [\(.key)] \(.fields.summary) — \(.fields.status.name)"' | \
sed 's/&/\&/g; s/</\</g; s/>/\>/g')
# Create Confluence page with sprint summary
curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X POST -H "Content-Type: application/json" \
"https://$ATLASSIAN_DOMAIN/wiki/rest/api/content" \
-d "{
\"type\": \"page\",
\"title\": \"Sprint $SPRINT_ID Report\",
\"space\": {\"key\": \"$SPACE_KEY\"},
\"body\": {
\"storage\": {
\"value\": \"<h2>Sprint Issues</h2><p>$ISSUES</p>\",
\"representation\": \"storage\"
}
}
}"
# Robust API call with error handling
atlassian_api() {
local method="$1"
local endpoint="$2"
local data="$3"
local response
response=$(curl -s -w "\n%{http_code}" \
-u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
-X "$method" \
-H "Content-Type: application/json" \
${data:+-d "$data"} \
"https://$ATLASSIAN_DOMAIN$endpoint")
local http_code
http_code=$(echo "$response" | tail -1)
local body
body=$(echo "$response" | head -n -1)
if [[ "$http_code" -ge 400 ]]; then
echo "ERROR: HTTP $http_code — $(echo "$body" | jq -r '.errorMessages[]? // .message // "Unknown error"')" >&2
return 1
fi
echo "$body"
}
# Usage
atlassian_api GET "/rest/api/3/issue/PROJECT-123"
atlassian_api POST "/rest/api/3/issue" '{"fields": {...}}'
# Retry with backoff
retry_api() {
local max_attempts=3
local attempt=1
local wait=1
while [ $attempt -le $max_attempts ]; do
if atlassian_api "$@"; then
return 0
fi
echo "Attempt $attempt failed. Retrying in ${wait}s..." >&2
sleep $wait
wait=$((wait * 2))
attempt=$((attempt + 1))
done
echo "All attempts failed" >&2
return 1
}
customfield_10001 — query /rest/api/3/field to discover them.devops — CI/CD pipeline integrationgithub-ops — GitHub alternative for source controlazure-devops — Microsoft DevOps platform alternative아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.