Attach files to a Jira Issue
SkillFiles & storageUse this skill only when the user explicitly invokes /attach-jira-issue to upload one or more local files as attachments to a Jira issue. This is a write skill with irreversible side effects — it must never be auto-invoked from conversational context. Previews what will be uploaded and requires explicit confirmation before POSTing.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Attach files to a Jira Issue skill
What this skill tells your AI
The instructions your AI receives, as published by atomicinnovation/accelerator in skills/integrations/jira/attach-jira-issue/SKILL.md and read by ahel’s review.
!${CLAUDE_PLUGIN_ROOT}/bin/accelerator config context --skill attach-jira-issue --fail-safe
Upload one or more local files as attachments to a Jira issue. Work through
the steps below in order. This skill never auto-invokes — it only runs when
the user explicitly types /attach-jira-issue.
Step 1: Parse flags
Required:
KEY— issue key (first positional), e.g.ENG-42FILE [FILE...]— one or more local file paths to upload
Step 2: Preview the resolved intent
Show, under Proposed Jira write — review before sending:
POSTattachments to<KEY>;- the file list: for each path, run
wc -c <path>via Bash and show the basename with a humanised size (≥ 1 048 576 bytes → MB, ≥ 1 024 bytes → KB, otherwise bytes). A missing or unreadable path is surfaced here — say which file could not be read and stop, making no API call. - ⚠️ "Attachments cannot be removed by this skill once uploaded."
Step 3: Confirm before writing
Ask the user:
Send this to Jira? Reply y to confirm, n to revise, anything else to abort.
A clear y/yes proceeds; a n/revise stays in review (typically different
paths or a different key); anything ambiguous aborts with "Aborted — no Jira
write was made."
Step 4: Send the request
${CLAUDE_PLUGIN_ROOT}/bin/accelerator jira attach <KEY> <FILE> [FILE...]
Run the bare launcher directly as an executable; never prefix it with
bash/sh/env and never pipe its output.
Step 5: Render the response
On success the subcommand emits the attachments as a JSON array (it carries no outcome envelope — success is the clean, zero-status run). For each element show the filename, id, and humanised size (same KB/MB logic as Step 2):
✓ Attached to <KEY>:
- <filename> (ID: <id>, <humanised-size>)
If the array is empty or unparseable, tell the user "Upload succeeded but the
response was empty or unreadable." On a non-zero exit, show the error — a
missing/unreadable file or a credential failure names its cause on stderr;
suggest /init-jira for a credential failure.
Examples
Example — single file
User: /attach-jira-issue ENG-42 ./screenshot.png
Skill previews the upload (screenshot.png, e.g. 84.3 KB), waits for y,
uploads, and confirms with the returned id and size.
!${CLAUDE_PLUGIN_ROOT}/bin/accelerator config instructions attach-jira-issue --fail-safe
Signals
- GitHub stars
- 31
- Forks
- 1
- Last commit
- Sep 2026
ahel review
S4info
community integration — published by atomicinnovation, not jira
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
attach-jira-issue- Source
- github.com/atomicinnovation/accelerator