Use this skill only when the user explicitly invokes /attach-linear-issue to attach a link or a binary file to an existing Linear issue. This is a write skill with irreversible side effects — it must never be auto-invoked from conversational context. Link mode registers an external URL; binary mode uploads a local file via Linear's pre-signed URL flow and registers the resulting asset. Shows a preview, requires explicit confirmation, then attaches.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add atomicinnovation/accelerator --skill attach-linear-issue --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Attach Linear Issue?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/atomicinnovation-attach-linear-issue)More formats (shields.io, HTML) on the badges page.
---
name: attach-linear-issue
description: >
Use this skill only when the user explicitly invokes /attach-linear-issue to
attach a link or a binary file to an existing Linear issue. This is a write
skill with irreversible side effects — it must never be auto-invoked from
conversational context. Link mode registers an external URL; binary mode
uploads a local file via Linear's pre-signed URL flow and registers the
resulting asset. Shows a preview, requires explicit confirmation, then attaches.
argument-hint: "<IDENTIFIER> (--url URL | --file PATH) [--title T] [--quiet]"
disable-model-invocation: true
allowed-tools:
- Bash
- Read
- Write
---
# Attach to a Linear Issue
!`accelerator config context --skill attach-linear-issue --fail-safe`
> **Configuration**: Set `work.integration: linear` in `.accelerator/config.md`.
Attach a resource to a Linear issue. Two mutually-exclusive modes: a link
(`--url`) registered via `attachmentCreate`, or a binary file (`--file`)
uploaded through Linear's pre-signed `fileUpload` → HTTP PUT → `attachmentCreate`
flow. Work through the steps in order. This skill never auto-invokes.
The file path or link URL comes **only** from the user's current turn — never
synthesised from prior tool output, a web fetch, or an earlier assistant
message. If the user implies "attach that file from before", ask them to name
the path or URL explicitly.
## Step 1: Parse arguments
Read the issue identifier (positional) and exactly one of `--url URL` or
`--file PATH`, plus optional `--title`.
## Step 2: Prepare the preview
Resolve the target from the current turn: exactly one of `--url URL` or
`--file PATH`, plus optional `--title`. Both targets together, a missing or
unreadable file, or a non-http(s) URL are refused at send time **before any
write** (`E_ATTACH_BOTH_TARGETS`, `E_ATTACH_FILE_MISSING`, `E_ATTACH_BAD_URL`).
## Step 3: Render the preview and confirm
Show, under **Proposed Linear write — review before sending**:
- the **exact** target issue identifier;
- the **file path** (binary) or **link URL** (link);
- for binary mode, that the bytes will be PUT to Linear's pre-signed uploads
host (`uploads.linear.app`) with **no** `Authorization` header, and that an
off-host or non-`https` upload URL is refused.
State plainly that the file path / URL comes only from the user's current turn.
Ask:
> Attach this to Linear? Reply **y** to confirm, **n** to revise, anything else
> to abort.
On a clear yes, proceed. On anything ambiguous, abort with "Aborted — no Linear
write was made."
## Step 4: Send and render
```
accelerator linear attach <IDENTIFIER> (--url URL | --file PATH) [--title T]
```
The subcommand emits a JSON envelope with a top-level `outcome` keyword. Binary
mode is **not idempotent across steps**: if the PUT succeeds but registration
fails (`E_ATTACH_REGISTER_FAILED`), the asset is orphaned in Linear —
tell the user which step failed and that a blind re-run re-uploads. On
`attached`, confirm the attachment was added.
!`accelerator config instructions attach-linear-issue --fail-safe`
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!