$npx -y skills add eunsanMountain/atlassian-skills --skill atlsALL Atlassian work — Jira, Confluence, Bitbucket on Server/DC (지라/컨플루언스/비트버킷). Load BEFORE the first atls command. Without this body, you WILL guess atls conventions wrong: JQL/CQL is positional (not --jql), --format=json (not -f json — -f is --md-file), push-md vs page update,
| 1 | # atls — Atlassian CLI Dispatcher |
| 2 | |
| 3 | <!-- installed-by: atls 0.2.13 --> |
| 4 | |
| 5 | ## Upgrade |
| 6 | On missing command/flag or CHANGELOG-fixed behavior, run `atls version --check`; exit 1 → suggest `atls upgrade`. |
| 7 | |
| 8 | ## Command tree |
| 9 | ``` |
| 10 | atls |
| 11 | ├── jira |
| 12 | │ ├── issue get, search, create, update, delete, transition, transitions, dates, sla, images |
| 13 | │ ├── issue-batch create |
| 14 | │ ├── epic link |
| 15 | │ ├── comment list, add, edit, delete |
| 16 | │ ├── sprint list, issues, create, update, add-issues |
| 17 | │ ├── board list, issues |
| 18 | │ ├── field search, options |
| 19 | │ ├── link list-types, create, remote-list, remote-create, delete |
| 20 | │ ├── worklog list, add |
| 21 | │ ├── watcher list, add, remove |
| 22 | │ ├── attachment list, upload, download, delete |
| 23 | │ ├── dev-info get, get-many |
| 24 | │ ├── service-desk list, queues, queue-issues |
| 25 | │ ├── project list, issues, versions, components, versions-create |
| 26 | │ └── user get, me |
| 27 | └── confluence |
| 28 | ├── page get, search, children, history, diff, images, create, update, delete, move, push-md, pull-md, pull-batch, diff-local |
| 29 | ├── space tree |
| 30 | ├── comment list, add, reply |
| 31 | ├── label list, add |
| 32 | ├── attachment list, upload, upload-batch, download, download-all, delete |
| 33 | └── user search, me |
| 34 | ├── bitbucket |
| 35 | │ ├── project list |
| 36 | │ ├── repo list, get |
| 37 | │ ├── pr list, get, diff, comments, commits, activity, create, update, merge, decline, approve, unapprove, needs-work, reopen, diffstat, statuses, pending-review |
| 38 | │ ├── branch list |
| 39 | │ ├── file get |
| 40 | │ ├── comment add, reply, update, delete, resolve, reopen |
| 41 | │ └── task list, get, create, update, delete |
| 42 | ``` |
| 43 | |
| 44 | ## Format selection |
| 45 | 1. List/scan many items? → `--format=compact` (default, fewest tokens) |
| 46 | 2. Parse fields programmatically? → `--format=json` |
| 47 | 3. Read body as readable text? → `--format=md` |
| 48 | 4. Preserve byte-exact server response? → `--format=raw` |
| 49 | |
| 50 | ## Format placement |
| 51 | - **Never use `-f` as a short form for `--format`** — several commands use `-f` for file input (`page create`, `page update`, `push-md`, `confluence comment add/reply`), so `-f json` may be silently interpreted as a filename. |
| 52 | - Always use the long form `--format=...` after the subcommand. |
| 53 | |
| 54 | ## page update vs push-md |
| 55 | - `page update`: Low-level. Replace page body directly (`--body-format=storage|md`). No attachment handling. |
| 56 | - `push-md`: High-level. Markdown-native with attachment syncing, passthrough comments, asset-dir, no-change detection. **Prefer this for markdown workflows.** |
| 57 | |
| 58 | ## Common patterns |
| 59 | ```bash |
| 60 | # Jira |
| 61 | atls jira issue get KEY # compact view |
| 62 | atls jira issue search "project=PROJ" # JQL search |
| 63 | atls jira issue create --project PROJ --type Story --summary "..." --body-file=- |
| 64 | atls jira issue update KEY --body-file=- --body-format=md --heading-promotion=jira |
| 65 | atls jira comment add KEY --body-file=- --body-format=md # md → Jira wiki (also: comment edit, worklog add --comment-format=md) |
| 66 | |
| 67 | # Jira transition (2-step: discover ID, then transition) |
| 68 | atls jira issue transitions KEY --format=json # → [{"id":"31","name":"In Progress"},...] |
| 69 | atls jira issue transition KEY --transition-id 31 |
| 70 | # Or by name (case-insensitive): |
| 71 | atls jira issue transition KEY --transition-name "In Progress" |
| 72 | |
| 73 | # Confluence |
| 74 | atls confluence page get ID # compact view |
| 75 | atls confluence page search "CQL query" |
| 76 | atls confluence page push-md ID --md-file page.md --if-version 15 |
| 77 | atls confluence page push-md ID --md-file page.md --asset-dir=assets/ |
| 78 | atls confluence page pull-md ID --output page.md --resolve-assets=sidecar --asset-dir=assets/ |
| 79 | atls confluence page pull-batch ID ID --output-dir=pages/ |
| 80 | atls confluence page diff-local ID page.md --passthrough-prefix workflow: |
| 81 | ``` |
| 82 | |
| 83 | ## Write safety |
| 84 | - Always use `--dry-run` before write operations |
| 85 | - Use `--if-version N` for Confluence updates & push-md (reject if stale → exit 5) |
| 86 | - Use `--if-updated ISO` for Jira updates (stale check → exit 5) |
| 87 | - Use `--attachment-if-exists skip|replace` to control duplicate attachments (push-md) |
| 88 | |
| 89 | ## Key flags |
| 90 | | Flag | Commands | Effect | |
| 91 | |---|---|---| |
| 92 | | `--if-version N` | push-md, page update | Optimistic lock (exit 5 if stale) | |
| 93 | | `--asset-dir DIR` | push-md, pull-md | Batch attach / download assets (missing dir on push-md = empty set) | |
| 94 | | `--output -o PATH` | pull-md | Write markdown to file instead of stdout | |
| 95 | | `--resolve-assets=sidecar` | pull-md | Download attachments, rewrite image links | |
| 96 | | `--output-dir DIR` | pull-batch | Write page |