Skip to content

/linear-workspace

Linear issue management — routes work to specialized agents and slash commands. Use when: creating, updating, searching, bulk-editing, cleaning up, syncing Linear. TRIGGERS: "linear", "ticket", "issue", "create issue", "update issue", "search issues", "my issues", "bulk",

From plugin
71 skills5 agents6 commands
shell
$ npx -y skills add Elnora-AI/elnora-linear --skill linear-workspace --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/linear-workspace
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Linear issue management — routes work to specialized agents and slash commands. Use when: creating, updating, searching, bulk-editing, cleaning up, syncing Linear. TRIGGERS: "linear", "ticket", "issue", "create issue", "update issue", "search issues", "my issues", "bulk",

SKILL.md

linear-workspace.SKILL.md
name: linear-workspace
description: >
  Linear issue management — routes work to specialized agents and slash commands.
  Use when: creating, updating, searching, bulk-editing, cleaning up, syncing Linear.
  TRIGGERS: "linear", "ticket", "issue", "create issue", "update issue", "search issues",
  "my issues", "bulk", "cleanup", "sync", "log bug", "file issue", "report bug",
  "new ticket", "add task", "open ticket", "open issue", "throw this in linear",
  "track this in linear", "capture as issue", "put on the backlog".

Linear Workspace

Router for Linear work. Dispatches to specialized agents or slash commands rather than running things inline.

Dispatch table

| Intent | Action | |---|---| | Create one issue from a description | Agent: `linear-issue-creator` | | Create issues from a URL / article / design | Agent: `linear-url-to-issues` | | Review one existing issue (clarity, completeness) | Agent: `linear-issue-reviewer` | | Edit one existing issue (state, assignee, comment, close, …) | Agent: `linear-issue-updater` | | Search / list issues | Slash command: `/linear-search` | | List your own issues | Slash command: `/linear-my-issues` | | Apply the same change to many issues | Slash command: `/linear-bulk` | | Find + handle stale issues | Slash command: `/linear-cleanup` | | Refresh reference data from Linear | Slash command: `/linear-sync` | | Run the curator (collect signals from external sources) | Slash command: `/linear-curator-run` |

For parallel work (e.g. 5 issues from 5 URLs), dispatch multiple agents in a single message — that's why they exist.

First-run install

1. `/plugin marketplace add Elnora-AI/elnora-linear` then `/plugin install linear-workspace@elnora-linear` 2. Make sure the `elnora-linear` CLI is on your PATH: `npm install -g @elnora-ai/linear` 3. On your first Linear command, you'll be prompted for your Linear API key (get one at https://linear.app/settings/api). It's saved to `~/.config/elnora-linear/.env` (mode 0600). 4. Populate the reference files: `/linear-sync` (runs `elnora-linear sync all` — fetches teams, projects, users, workflows in one batch).

Reference files

The plugin reads user-specific config from `~/.config/elnora-linear/` by default (override via `LINEAR_REFERENCES_DIR`):

  • `teams.json`, `projects.json`, `users.json`, `workflows.json` — populated by `/linear-sync`
  • `slack.json`, `repos.json`, `signal-sources.json`, `label-policy.json` — populated manually (schemas in [`schemas/`](../../schemas/), examples in [`references/*.example.json`](../../references/))

Run `elnora-linear sync verify` to see which are populated vs placeholder.

Dispatch prompt — what to include

1. The user's raw request, verbatim 2. Suspected team (let the agent confirm via `elnora-linear teams list`) 3. Compliance flag (see below), if any 4. Anything the user already specified (project, priority, assignee, due date) 5. **If a URL appears anywhere in the request → dispatch to `linear-url-to-issues`**, not `linear-issue-creator`

The agent handles searching for duplicates, label requirements, state matching, and asking the user about anything unclear.

Fast-path saves tokens

The creator agent has a fast path that skips the dupe scan, project-status check, and reference reads when the dispatch already specifies team + project + priority + assignee + a clear novel title (and no compliance keywords). When you have all five, write them out explicitly in the prompt — the agent will detect the fast path and complete in roughly one CLI call instead of three.

Compliance flag

If the request mentions any of: **incident, breach, vulnerability, CVE, pentest, penetration test, onboarding, offboarding, access provision/revoke, audit, SOC 2, change request, risk assessment, vendor review, backup test, RCA, lessons learned, DPA, DSR / data subject request** — say so in the dispatch prompt. The agent will load `references/template-index.md` and apply the matching template (`SEC-*`, `CHG-*`, `ACC-*`, `AUD-*`, `RSK-*`, `OPS-*`, `SLA-*`, `RCA-*`, `LRN-*`).

Model tiering — pass `model:` on the Agent dispatch

Match the model to task complexity. The agent frontmatter sets the default; override per-dispatch when the task is clearly easier or harder. Haiku < Sonnet < Opus on cost AND token usage — Opus uses **more** tokens than Sonnet for the same task, not fewer. It's a quality escalation, never a token-saving move.

| Task | Agent | Model | Why | |---|---|---|---| | Fast-path create (all fields explicit, no compliance) | `linear-issue-creator` | `haiku` | Mechanical CRUD, single CLI call | | Full-path create (ambiguous routing, dupe scan, compliance template) | `linear-issue-creator` | `sonnet` | Branching + judgment | | Single-field update (state, assignee, priority, label add) | `linear-issue-updater` | `haiku` | One CLI call, fixed flag | | Cross-team move, full description rewrite | `linear-issue-updater` | `sonnet` | Validates required labels across teams | | URL → issues extraction | `linear-url-to-issues` | `sonnet` | Real synthesis from unstructured content | | Issue completeness review | `linear-issue-reviewer` | `sonnet` | Reads description + comments + acceptance criteria | | Headless curator pass (scheduled) | `linear-state-curator` | `haiku` | Mechanical signal collection + tier dispatch | | Interactive curator dry-run / triage | `linear-state-curator` | `sonnet` | Reading curator-report.jsonl + judgment calls on MEDIUM queue |

Don't reach for Opus by default. Sonnet handles every Linear task cleanly. Only escalate to Opus if Sonnet has *actually failed* on this task type (looped, produced wrong output, gave up). If the request mentions a compliance keyword, upgrade the creator to Sonnet automatically.

Dispatch prompt budget

When the user request is fully specified, keep the dispatch prompt short — the agent already knows the playbook. Pass through:

  • The user's raw request, verbatim
  • Team / project / priority / assignee if expli
Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withlinear-workspace

The full Linear API as a CLI, a Claude Code plugin, and a signal-driven hygiene curator — purpose-built for AI coding agents to create, edit, review, and curate Linear issues safely at scale.

Get the whole plugin, auto-invoked
Stats
7
Stars
0
Views
0
Forks
Active
Maintenance
TypeScript
Language
Apache-2.0
License
2d ago
Last commit
2mo ago
Created

Repo: Elnora-AI/elnora-linear