aclilisted
Install: claude install-skill whimzyLive/nightshift-ai
# acli — Atlassian CLI for Jira
`acli` via Bash is the only Jira transport. Never use Atlassian MCP tools or direct HTTP to `api.atlassian.com` — not even as a fallback. An `acli` failure is a STOP (surface it), not a signal to switch transports.
## ⚠️ Description formatting — ADF JSON required
**Before writing any description or comment to Jira, read `.claude/refs/jira-adf.md`.**
`acli --description-file` passes the file contents directly to the Jira API. Plain markdown renders as raw symbols (e.g. `**bold**` appears literally). All descriptions must be Atlassian Document Format (ADF) JSON, saved to a `.json` temp file. The ref contains the full node reference, mark types, and ready-to-use Epic and Story templates.
## Why acli over MCP
MCP tool calls return full JSON payloads into context. acli runs in Bash, outputs only what you request, and exits. Token cost per operation: acli ≈ 10–50 tokens vs MCP ≈ 500–2000 tokens.
## Authentication
acli reads credentials from `~/.config/acli/`. Before any acli command, run this auth guard:
```bash
# 1. DNS reachability check — fail fast if Atlassian is blocked
if ! getent hosts "$ATLASSIAN_SITE" >/dev/null 2>&1; then
echo "ERROR: $ATLASSIAN_SITE is DNS-blocked in this environment." >&2
echo "Fix: allowlist $ATLASSIAN_SITE and api.atlassian.com in GitHub → Settings → Copilot → Policies." >&2
exit 1
fi
# 2. Re-authenticate if no valid profile (Copilot agent sessions don't share ~/.config/acli from setup steps)
acli jira a