skills/witooh/skills/atlassian

atlassian

SKILL.md

Atlassian CLI (acli) Skill

Use acli (installed at /opt/homebrew/bin/acli) to interact with Jira and Confluence from the terminal.

Shell tool mapping: Claude Code → Bash, Copilot CLI → bash, Kiro CLI → execute_bash. All commands below should be executed via your platform's shell execution tool.

Authentication

Check auth status before running any commands if uncertain:

acli jira auth status
acli confluence auth status

If not authenticated:

# With API token (recommended for scripting)
echo <token> | acli jira auth login --site "yoursite.atlassian.net" --email "you@example.com" --token

# With browser OAuth
acli jira auth login --web

Jira

View & Search Work Items

# View a single issue
acli jira workitem view KEY-123
acli jira workitem view KEY-123 --json                          # structured output
acli jira workitem view KEY-123 --fields "summary,status,comment,description"

# Search with JQL
acli jira workitem search --jql "assignee = currentUser() AND sprint in openSprints()"
acli jira workitem search --jql "project = PROJ AND status = 'In Progress'" --fields "key,summary,status,assignee"
acli jira workitem search --jql "..." --json
acli jira workitem search --jql "..." --csv                     # for reports
acli jira workitem search --jql "..." --paginate               # fetch all results
acli jira workitem search --jql "..." --count                  # count only
acli jira workitem search --jql "..." --limit 50

See references/jql-patterns.md for common JQL patterns for developers.

Create Work Items

# Quick create
acli jira workitem create --summary "Fix login bug" --project "PROJ" --type "Bug"

# With details
acli jira workitem create \
  --summary "Add retry logic" \
  --project "PROJ" \
  --type "Task" \
  --description "Implement exponential backoff for API calls" \
  --assignee "@me" \
  --label "backend,reliability"

# From JSON (use --generate-json to get template first)
acli jira workitem create --generate-json > workitem.json
# edit workitem.json, then:
acli jira workitem create --from-json workitem.json --project "PROJ" --type "Task"

# Bulk create
acli jira workitem create-bulk --from-json bulk-workitems.json

Edit Work Items

# Edit single issue
acli jira workitem edit --key "KEY-123" --summary "Updated summary"
acli jira workitem edit --key "KEY-123" --description "New description" --yes

# Bulk edit via key list
acli jira workitem edit --key "KEY-1,KEY-2,KEY-3" --assignee "@me" --yes

# Bulk edit via JQL
acli jira workitem edit --jql "project = PROJ AND status = 'To Do' AND assignee is EMPTY" \
  --assignee "dev@company.com" --yes --ignore-errors

# Add/remove labels
acli jira workitem edit --key "KEY-123" --labels "frontend,urgent"
acli jira workitem edit --key "KEY-123" --remove-labels "old-label"

Transition Work Items (Change Status)

# Single transition
acli jira workitem transition --key "KEY-123" --status "In Progress"
acli jira workitem transition --key "KEY-123" --status "Done" --yes

# Bulk transition via key list
acli jira workitem transition --key "KEY-1,KEY-2,KEY-3" --status "Done" --yes

# Bulk transition via JQL
acli jira workitem transition \
  --jql "project = PROJ AND sprint in openSprints() AND status = 'In Review'" \
  --status "Done" --yes --ignore-errors

Common status values: "To Do", "In Progress", "In Review", "Done" (exact names depend on project workflow).

Assign Work Items

acli jira workitem assign --key "KEY-123" --assignee "@me"
acli jira workitem assign --key "KEY-123" --assignee "user@company.com"

# Bulk assign via JQL
acli jira workitem assign \
  --jql "project = PROJ AND sprint in openSprints() AND assignee is EMPTY" \
  --assignee "@me" --yes

# Remove assignee
acli jira workitem assign --key "KEY-123" --remove-assignee

Comments

# List comments
acli jira workitem comment list --key "KEY-123"

# Add comment
acli jira workitem comment create --key "KEY-123" --body "Fixed in commit abc123"

# Update comment
acli jira workitem comment update --key "KEY-123" --comment-id <id> --body "Updated note"

# Delete comment
acli jira workitem comment delete --key "KEY-123" --comment-id <id>

Sprints

# View sprint details
acli jira sprint view <sprint-id>

# List all work items in a sprint
acli jira sprint list-workitems <sprint-id>

# List sprints on a board
acli jira board list-sprints <board-id>

# Create sprint
acli jira sprint create --name "Sprint 10" --board <board-id>

Boards

# Search boards
acli jira board search --name "My Team Board"

# Get board details
acli jira board get <board-id>

# List sprints on a board
acli jira board list-sprints <board-id>

# List projects on a board
acli jira board list-projects <board-id>

Projects

acli jira project list --paginate          # --paginate is required (or use --limit N or --recent)
acli jira project view --project "PROJ"
acli jira project create --name "New Project" --key "NP" --type "scrum"

Confluence

Pages

# View a page (need page ID or URL)
acli confluence page view <page-id>
acli confluence page view <page-id> --json

Spaces

# List all spaces
acli confluence space list

# View space details
acli confluence space view --key "MYSPACE"

# Create a space
acli confluence space create --name "Engineering Docs" --key "ENGDOCS"

# Update space
acli confluence space update --key "MYSPACE" --name "New Name" --description "Updated desc"

# Archive / restore space
acli confluence space archive --key "OLDSPACE"
acli confluence space restore --key "OLDSPACE"

Blogs

acli confluence blog --help   # check available subcommands for blogs

Practical Workflows

Daily Standup

# What am I working on?
acli jira workitem search \
  --jql "assignee = currentUser() AND sprint in openSprints() AND status != Done" \
  --fields "key,summary,status"

Start Working on an Issue

acli jira workitem transition --key "KEY-123" --status "In Progress" --yes
acli jira workitem assign --key "KEY-123" --assignee "@me"

End of Day / Mark Done

acli jira workitem transition --key "KEY-123" --status "Done" --yes
acli jira workitem comment create --key "KEY-123" --body "Completed. PR: #456"

Bulk Close Sprint Items (when sprint ends)

acli jira workitem transition \
  --jql "sprint in openSprints() AND status = 'In Review' AND assignee = currentUser()" \
  --status "Done" --yes --ignore-errors

Find Unassigned Bugs in Open Sprints

acli jira workitem search \
  --jql "issuetype = Bug AND sprint in openSprints() AND assignee is EMPTY" \
  --fields "key,summary,priority,status"

Output Tips

  • Use --json when you need to parse output or pass to other commands
  • Use --csv for tabular data / reports
  • Use --yes to skip confirmation prompts in bulk operations
  • Use --ignore-errors in bulk ops so one failure doesn't stop the rest
  • Use --paginate when expecting more results than the default limit
Weekly Installs
15
Repository
witooh/skills
First Seen
4 days ago
Installed on
opencode15
gemini-cli15
github-copilot15
codex15
amp15
cline15