$npx -y skills add kv0906/pm-kit --skill jiraJira integration via acli CLI. Use when user says '/jira', 'check Jira board', 'create Jira ticket', 'move ticket to done', 'search Jira', 'sync blockers from Jira', 'what's in the sprint', 'Jira status', 'assign ticket', 'view backlog', or wants to interact with Jira issues, spr
| 1 | # /jira — Jira Integration |
| 2 | |
| 3 | Bridge your PM-Kit vault with Jira issue tracking via the `acli` (Atlassian CLI) command-line tool. View boards, create/edit/transition issues, search via JQL, and sync Jira state with vault notes. |
| 4 | |
| 5 | ## Prerequisites |
| 6 | |
| 7 | - **acli** (Atlassian CLI): `brew install acli` or download from https://bobswift.atlassian.net/wiki/spaces/ACLI |
| 8 | - **Jira Cloud or Server instance** with API access |
| 9 | - **Authentication** configured via `acli jira auth login` |
| 10 | |
| 11 | ## Context |
| 12 | |
| 13 | Today's date: `!date +%Y-%m-%d` |
| 14 | Config: @_core/config.yaml |
| 15 | Processing rules: @_core/PROCESSING.md |
| 16 | Active projects: `!ls 01-index/*.md 2>/dev/null | sed 's|01-index/||;s|\.md||'` |
| 17 | |
| 18 | ## Input |
| 19 | |
| 20 | User input: $ARGUMENTS |
| 21 | |
| 22 | ## Sub-commands |
| 23 | |
| 24 | Parse the first word of `$ARGUMENTS` to determine the sub-command: |
| 25 | |
| 26 | | Input starts with | Sub-command | Purpose | Read/Write | |
| 27 | |---|---|---|---| |
| 28 | | `setup` | Setup | Guide installation + auth configuration | Config write | |
| 29 | | `board` | Board | Show board columns with issue counts | Read-only | |
| 30 | | `create` | Create | Create a Jira issue | Jira write + optional vault note | |
| 31 | | `status` | Status | Show details for a specific issue | Read-only | |
| 32 | | `move` | Move | Transition an issue to a new status | Jira write + vault note update | |
| 33 | | `edit` | Edit | Update issue fields | Jira write | |
| 34 | | `assign` | Assign | Assign an issue to someone | Jira write | |
| 35 | | `backlog` | Backlog | Show backlog items | Read-only | |
| 36 | | `search` | Search | Find issues via JQL or natural language | Read-only | |
| 37 | | `sprint` | Sprint | Show active sprint details | Read-only | |
| 38 | | `sync` | Sync | Pull Jira state into vault notes | Vault write (additive only) | |
| 39 | | *(empty)* | Help | Show help + quick status summary | Read-only | |
| 40 | |
| 41 | ## Step 0: Connection Check |
| 42 | |
| 43 | Before any sub-command (except `setup`), verify acli is installed and authenticated: |
| 44 | |
| 45 | ```bash |
| 46 | # 1. Check acli is installed |
| 47 | command -v acli &>/dev/null |
| 48 | |
| 49 | # 2. Check auth works with a simple query |
| 50 | acli jira --action getServerInfo 2>/dev/null |
| 51 | ``` |
| 52 | |
| 53 | If either fails: |
| 54 | |
| 55 | ``` |
| 56 | Jira CLI (acli) is not connected yet. |
| 57 | |
| 58 | Run `/jira setup` to install and configure — it takes about 2 minutes. |
| 59 | ``` |
| 60 | |
| 61 | Then stop. Don't attempt other operations without a working connection. |
| 62 | |
| 63 | ### Project Resolution |
| 64 | |
| 65 | Many sub-commands accept an optional `[PROJECT]` argument. Resolve it: |
| 66 | |
| 67 | 1. If user provides a Jira project key directly (e.g., `TEAM`), use it |
| 68 | 2. If user provides a vault project ID (e.g., `project-a`), look up `integrations.jira.project_mapping` in `_core/config.yaml` |
| 69 | 3. If no project specified, check for a single active project or use `integrations.jira.default_board` |
| 70 | 4. If ambiguous, ask the user |
| 71 | |
| 72 | --- |
| 73 | |
| 74 | ## setup — Install & Configure |
| 75 | |
| 76 | Guide the user through installing acli and connecting to their Jira instance. |
| 77 | |
| 78 | ### Steps to present: |
| 79 | |
| 80 | ``` |
| 81 | ## Jira CLI Setup |
| 82 | |
| 83 | ### Step 1: Install acli |
| 84 | brew install acli |
| 85 | |
| 86 | Or download from: https://bobswift.atlassian.net/wiki/spaces/ACLI |
| 87 | |
| 88 | ### Step 2: Authenticate |
| 89 | acli jira --server https://YOUR-ORG.atlassian.net --user your@email.com --token YOUR_API_TOKEN --action getServerInfo |
| 90 | |
| 91 | Generate an API token at: https://id.atlassian.com/manage-profile/security/api-tokens |
| 92 | |
| 93 | ### Step 3: Save credentials |
| 94 | Create ~/.acli/credentials with: |
| 95 | |
| 96 | jira.server = https://YOUR-ORG.atlassian.net |
| 97 | jira.user = your@email.com |
| 98 | jira.token = YOUR_API_TOKEN |
| 99 | |
| 100 | ### Step 4: Verify |
| 101 | /jira |
| 102 | |
| 103 | You should see your Jira instance info and recent activity. |
| 104 | ``` |
| 105 | |
| 106 | After presenting, ask the user for their Jira site URL and email to help configure. |
| 107 | |
| 108 | Then update `_core/config.yaml` integrations block: |
| 109 | |
| 110 | ```yaml |
| 111 | integrations: |
| 112 | jira: |
| 113 | enabled: true |
| 114 | site: "your-org.atlassian.net" |
| 115 | email: "your@email.com" |
| 116 | project_mapping: |
| 117 | project-a: TEAM # vault project ID: JIRA PROJECT KEY |
| 118 | default_board: "" |
| 119 | status_mapping: |
| 120 | "To Do": wip |
| 121 | "In Progress": wip |
| 122 | "Done": shipped |
| 123 | "Blocked": blocked |
| 124 | ``` |
| 125 | |
| 126 | Confirm each value with the user before writing. |
| 127 | |
| 128 | --- |
| 129 | |
| 130 | ## board — View Board |
| 131 | |
| 132 | Show the current board state with issues grouped by column. |
| 133 | |
| 134 | ### Processing |
| 135 | |
| 136 | 1. Resolve project (see Project Resolution above) |
| 137 | 2. Fetch board data: |
| 138 | |
| 139 | ```bash |
| 140 | acli jira --action getIssueList --project "PROJECT" --outputType json |
| 141 | ``` |
| 142 | |
| 143 | 3. Group issues by status and present: |
| 144 | |
| 145 | ``` |
| 146 | ## Jira Board — {PROJECT} |
| 147 | |
| 148 | ### To Do ({count}) |
| 149 | - [{KEY}] {summary} — {assignee} ({priority}) |
| 150 | |
| 151 | ### In Progress ({count}) |
| 152 | - [{KEY}] {summary} — {assignee} ({priority}) |
| 153 | |
| 154 | ### Done ({count} recent) |
| 155 | - [{KEY}] {summary} — completed {date} |
| 156 | ``` |
| 157 | |
| 158 | 4. Highlight any issues matching vault blockers (cross-reference by `jira_key` i |