dot_claude/skills/acli/SKILL.md
Atlassian CLI (acli) for Jira operations. Use when (1) creating Jira tickets/issues, (2) updating or editing existing tickets, (3) searching Jira issues, (4) viewing ticket details, (5) managing work items programmatically. Provides correct syntax and ADF format for descriptions.
npx skillsauth add paveg/dots acliInstall 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.
CLI tool for Jira Cloud operations. Use acli jira workitem commands for issue management.
Before using acli, always confirm with user:
AskUserQuestion examples:
- "What is the Jira project key?" (e.g., PROJ, TEAM)
- "What is the parent Epic key?" (e.g., PROJ-100)
- "What issue type should I use?" (Task, Bug, Story, Sub-task)
- "Are there any reference tickets I should check for format/style?"
Important: Always verify the parent ticket exists before creating sub-tasks:
acli jira workitem view PROJ-100
| Operation | Command |
|-----------|---------|
| View | acli jira workitem view KEY-123 (positional arg, NOT --key) |
| View (JSON) | acli jira workitem view KEY-123 --json |
| View (fields) | acli jira workitem view KEY-123 --fields summary,description |
| Create | acli jira workitem create --from-json file.json |
| Create (inline) | acli jira workitem create --project PROJ --type Task --summary "Title" |
| Edit | acli jira workitem edit --key "KEY-123" --summary "New title" --yes |
| Edit (JSON) | acli jira workitem edit --from-json file.json --yes |
| Search | acli jira workitem search --jql "project = PROJ" |
| Search (count) | acli jira workitem search --jql "project = PROJ" --count |
| Delete | acli jira workitem delete --key KEY-123 --yes |
| Transition | acli jira workitem transition --key KEY-123 --status "Done" --yes |
view: Uses positional argument — view KEY-123 (no --key flag)edit/delete/transition: Uses --key flag — edit --key KEY-123search: Uses --jql flag — search --jql "project = PROJ" (NOT positional)create: Uses --project/--type/--summary or --from-jsonedit with JSON: Uses --from-json (NOT --file)When creating tickets, ask user for reference tickets to match existing style:
# Check existing ticket format
acli jira workitem view PROJ-50
Recommended sections for task tickets:
Use --from-json with ADF (Atlassian Document Format) for proper formatting:
acli jira workitem create --from-json /tmp/ticket.json
{
"projectKey": "PROJ",
"type": "Task",
"parentIssueId": "PROJ-100",
"summary": "Ticket title",
"description": {
"type": "doc",
"version": 1,
"content": [...]
}
}
| Type | Use Case | |------|----------| | Epic | Large feature/initiative grouping multiple tasks | | Story | User-facing feature | | Task | Technical work item | | Bug | Defect fix | | Sub-task | Child of another issue |
See references/adf-format.md for complete ADF reference.
Common patterns:
// Heading
{"type": "heading", "attrs": {"level": 2}, "content": [{"type": "text", "text": "Title"}]}
// Paragraph
{"type": "paragraph", "content": [{"type": "text", "text": "Content"}]}
// Bullet list
{"type": "bulletList", "content": [
{"type": "listItem", "content": [
{"type": "paragraph", "content": [{"type": "text", "text": "Item"}]}
]}
]}
// Task list (checkboxes) - for acceptance criteria
{"type": "taskList", "attrs": {"localId": "list-1"}, "content": [
{"type": "taskItem", "attrs": {"localId": "item-1", "state": "TODO"},
"content": [{"type": "text", "text": "Task item"}]}
]}
// Code (inline)
{"type": "text", "text": "code here", "marks": [{"type": "code"}]}
// Link - for references
{"type": "text", "text": "Link text", "marks": [{"type": "link", "attrs": {"href": "https://..."}}]}
Always include relevant links in tickets:
{
"type": "bulletList",
"content": [
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{ "type": "text", "text": "Datadog URL", "marks": [
{ "type": "link", "attrs": { "href": "https://app.datadoghq.com/logs?..." } }
]}
]
}
]
},
{
"type": "listItem",
"content": [
{
"type": "paragraph",
"content": [
{ "type": "text", "text": "Related PR", "marks": [
{ "type": "link", "attrs": { "href": "https://github.com/..." } }
]}
]
}
]
}
]
}
Use --from-json with issues array to specify targets:
acli jira workitem edit --from-json /tmp/edit.json --yes
{
"issues": ["PROJ-123", "PROJ-124"],
"description": {
"type": "doc",
"version": 1,
"content": [...]
}
}
Important flags:
--yes: Skip confirmation prompt (required for automation)--key: Specify target issues inline (e.g., --key "KEY-1,KEY-2")--from-json: Use JSON file with issues array for complex edits (ADF descriptions)Common mistakes:
--key and --from-json cannot be used together — use issues array inside JSON insteadedit --key KEY-123 --summary "New" --yes--from-json with issues array in JSONacli jira workitem link --help
Set parentIssueId in create JSON for Epic-Task relationships.
Loop through data and create JSON for each:
for item in "Item1" "Item2" "Item3"; do
# Generate JSON with proper ADF
cat > /tmp/ticket.json << EOF
{...}
EOF
acli jira workitem create --from-json /tmp/ticket.json
done
Include all keys in issues array:
{
"issues": ["PROJ-1", "PROJ-2", "PROJ-3"],
"summary": "Updated title"
}
acli jira workitem view EPIC-KEYparentIssueId--from-jsonacli jira workitem view PROJ-123issues array--yes flag| Error | Cause | Solution |
|-------|-------|----------|
| unknown flag: --key on view | view takes positional arg | Use view KEY-123 not view --key KEY-123 |
| JQL passed as positional arg to search | search requires --jql flag | Use search --jql "..." not search "..." |
| unknown flag: --file on edit | Flag does not exist | Use --from-json not --file |
| INVALID_INPUT | Bad ADF format | Validate JSON structure |
| flags cannot be used together | --key with --from-json on edit | Use issues array in JSON |
| Markdown not rendering | Plain text description | Use ADF format |
| Confirmation prompt blocking | Missing --yes | Add --yes flag for non-interactive environments |
| Issue does not exist | Wrong key or no permission | Verify key with view first |
| JQL != operator errors | Operator or quoting issue | Use NOT IN (Done, Canceled) instead of != Done |
acli jira workitem --help for all available commandsacli jira workitem create --generate-json for JSON templateacli jira workitem edit --generate-json for edit JSON templatedevelopment
Iteratively improve agent-facing text instructions (skills, slash commands, task prompts, CLAUDE.md sections, code-generation prompts) by having a bias-free executor run them and evaluating from both sides (executor self-report + caller-side metrics). Repeat until improvement plateaus. Use immediately after creating or significantly revising a skill/prompt, or when unexpected agent behavior is suspected to stem from ambiguous instructions.
development
UI design quality standards and principles for frontend implementation and code review. Use when (1) implementing UI from design specs or mockups, (2) reviewing frontend/UI code, (3) creating new UI components, (4) building user interfaces for web or mobile apps. Complements frontend-design skills with quality enforcement.
development
Pre-submission review for iOS App Store. Scans the codebase for common rejection reasons and generates a pass/fail report with fixes. Use this skill when the user mentions App Store submission, review, release, 審査, 提出, or phrases like "ready to submit", "before submitting to Apple", "submission review", "rejection check". Also trigger when the user is preparing a TestFlight build for external review or discussing App Store rejection issues. Supports Swift/SwiftUI, UIKit, and React Native projects with Apple IAP and RevenueCat.
data-ai
Delegate an interrupt task to a background agent in an isolated worktree. The main session continues uninterrupted. The agent implements, commits, pushes, and creates a PR. Use when a quick fix or small task needs to happen without losing current context.