templates/skills/modules/atlassian/SKILL.md
Use MCP Atlassian for Jira issues, Confluence documentation, and Bitbucket repositories.
npx skillsauth add hivellm/rulebook AtlassianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
CRITICAL: Use MCP Atlassian for Jira issues, Confluence documentation, and Bitbucket repositories.
// Create issue
jira.issues.createIssue({
fields: {
project: { key: 'PROJ' },
summary: 'Bug in authentication',
description: 'Users cannot login with valid credentials',
issuetype: { name: 'Bug' },
priority: { name: 'High' }
}
})
// Update issue
jira.issues.updateIssue({
issueIdOrKey: 'PROJ-123',
fields: {
status: { name: 'In Progress' },
assignee: { accountId: 'user-id' }
}
})
// Get issue
jira.issues.getIssue({ issueIdOrKey: 'PROJ-123' })
// Search issues
jira.issueSearch.searchForIssuesUsingJql({
jql: 'project = PROJ AND status = "To Do" ORDER BY priority DESC'
})
// Add comment
jira.issueComments.addComment({
issueIdOrKey: 'PROJ-123',
body: 'Working on this issue'
})
// Get transitions
const transitions = await jira.issues.getTransitions({ issueIdOrKey: 'PROJ-123' })
// Transition issue
jira.issues.doTransition({
issueIdOrKey: 'PROJ-123',
transition: { id: transitionId }
})
// Create page
confluence.content.createContent({
type: 'page',
title: 'API Documentation',
space: { key: 'DOCS' },
body: {
storage: {
value: '<h1>Introduction</h1><p>Content here</p>',
representation: 'storage'
}
}
})
// Update page
confluence.content.updateContent({
id: 'page-id',
type: 'page',
title: 'Updated Title',
version: { number: currentVersion + 1 },
body: {
storage: {
value: '<p>Updated content</p>',
representation: 'storage'
}
}
})
// Get page
confluence.content.getContentById({ id: 'page-id' })
// Search
confluence.search.search({
cql: 'type=page AND space=DOCS AND title~"API"'
})
// Add attachment
confluence.content.createAttachment({
id: 'page-id',
file: fileBuffer,
filename: 'document.pdf'
})
// Get attachments
confluence.content.getAttachments({ id: 'page-id' })
// Get repositories
bitbucket.repositories.list({ workspace: 'my-workspace' })
// Get repository
bitbucket.repositories.get({
workspace: 'my-workspace',
repo_slug: 'my-repo'
})
// Get branches
bitbucket.refs.listBranches({
workspace: 'my-workspace',
repo_slug: 'my-repo'
})
// Create PR
bitbucket.pullrequests.create({
workspace: 'my-workspace',
repo_slug: 'my-repo',
title: 'Add new feature',
source: { branch: { name: 'feature/new-feature' } },
destination: { branch: { name: 'main' } },
description: 'Implements feature X'
})
// List PRs
bitbucket.pullrequests.list({
workspace: 'my-workspace',
repo_slug: 'my-repo',
state: 'OPEN'
})
// Approve PR
bitbucket.pullrequests.approve({
workspace: 'my-workspace',
repo_slug: 'my-repo',
pull_request_id: 123
})
// Create issue on test failure
if (testsFailed) {
await jira.issues.createIssue({
fields: {
project: { key: 'PROJ' },
summary: `Test failure in ${testSuite}`,
description: `Tests failed with errors:\n${errors.join('\n')}`,
issuetype: { name: 'Bug' },
labels: ['ci-failure', 'automated']
}
})
}
// Sync CHANGELOG to Confluence
const changelog = fs.readFileSync('CHANGELOG.md', 'utf-8')
const html = markdownToConfluenceHtml(changelog)
await confluence.content.updateContent({
id: changelogPageId,
type: 'page',
title: 'Changelog',
version: { number: version + 1 },
body: { storage: { value: html, representation: 'storage' } }
})
// Get sprint tasks
const issues = await jira.issueSearch.searchForIssuesUsingJql({
jql: 'sprint = ACTIVE AND project = PROJ',
fields: ['summary', 'status', 'assignee', 'priority']
})
// Generate sprint report
const report = issues.issues.map(issue => ({
key: issue.key,
summary: issue.fields.summary,
status: issue.fields.status.name,
assignee: issue.fields.assignee?.displayName
}))
✅ DO:
❌ DON'T:
{
"mcpServers": {
"atlassian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-atlassian"],
"env": {
"JIRA_HOST": "your-domain.atlassian.net",
"JIRA_EMAIL": "[email protected]",
"JIRA_API_TOKEN": "your-api-token",
"CONFLUENCE_HOST": "your-domain.atlassian.net",
"CONFLUENCE_EMAIL": "[email protected]",
"CONFLUENCE_API_TOKEN": "your-api-token",
"BITBUCKET_WORKSPACE": "your-workspace",
"BITBUCKET_USERNAME": "your-username",
"BITBUCKET_APP_PASSWORD": "your-app-password"
}
}
}
}
Setup:
research
Create structured analyses with numbered findings, execution plans, and task materialization
research
Author a rulebook task spec interactively — research, draft, ask the user clarifying questions, confirm, then create the tasks in rulebook ready for /rulebook-driver. Use when the user wants to plan/spec a feature before implementing.
development
Behavioral guidelines to reduce common LLM coding mistakes — overcomplication, sloppy refactors, hidden assumptions, weak goals. Use when writing, reviewing, or refactoring code. Auto-applies; invoke explicitly via /karpathy-guidelines or 'follow karpathy discipline'.
data-ai
Autonomous AI agent loop for iterative task implementation (@hivehub/rulebook ralph)