Skip to content
Back to skills

Linear

ASecurity

ArcBox's Linear workflow. Use whenever starting a task that may have or need a tracking issue, or working with Linear at all — finding, creating, or updating issues, syncing progress, moving status, triage, or branch/PR linking. Trigger on any mention of Linear, an issue/ticket, an issue ID like ABX-123, a project, the board, or sprint/standup planning.

  • 147 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgogit

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add arcboxlabs/linkcode --skill linear --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Linear?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Linear
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/arcboxlabs-linear/badge)](https://www.skillsdirectory.com/skills/arcboxlabs-linear)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: linear
description: "ArcBox's Linear workflow. Use whenever starting a task that may have or need a tracking issue, or working with Linear at all — finding, creating, or updating issues, syncing progress, moving status, triage, or branch/PR linking. Trigger on any mention of Linear, an issue/ticket, an issue ID like ABX-123, a project, the board, or sprint/standup planning."
---

# Linear Workflow

Linear is the source of truth for what's being worked on. Keep issues in sync with reality, and treat an issue's history as shared — prefer adding over rewriting.

Resolve teams, projects, labels, statuses, and people **by name** (`list_teams`, `list_projects`, `list_issue_labels`, `list_issue_statuses`, `list_users`). Never paste raw IDs.

## Before Starting a Task

1. **Search first.** Look for an existing issue before doing the work — `list_issues(query:…)`, or filter by project/label/assignee. Don't assume there isn't one.
2. **If none exists**, don't silently create it. Ask the user the scope: which team and project, and whether it's one issue or several sub-issues. Then create it per *Creating Issues*.
3. **If one exists**, read it fully (`get_issue`, `includeRelations:true`) and bring it up to date before working:
   - Does the status reflect reality? Move it (e.g. → In Progress).
   - Is the assignee whoever is actually doing it? Fix it.
   - Is context missing — a decision, a new constraint, a related issue? Add it as a comment.

## While Working

- **Sync through comments** (`save_comment`), promptly. When you hit a blocker, change approach, or learn something that shifts scope, leave a comment — don't let the issue drift from reality, and don't bury the change by rewriting the description.
- **Move status as it changes**: In Progress when you start, In Review when a PR is open, Done when merged.

## Editing the Description

The description is the agreed spec. Once an issue is old, accepted, or has discussion, treat it as append-only:

- Prefer a **comment** over editing the description at all.
- If you must edit: wrap large removals in strikethrough (`~~…~~`) instead of deleting them; prefix any changed or added line with **`EDIT (YYYY-MM-DD):`** so the original intent stays legible.
- A fresh issue you just created, with no discussion yet, can be edited freely.

## Creating Issues

- Confirm scope (team / project / how to slice it) with the user first unless it's obvious.
- **Title**: imperative, no ID prefix (Linear adds `ABX-N`). Use a conventional-commit prefix (`fix(vmm):`, `feat(sandbox):`) when the issue maps to a code change; otherwise a plain descriptive title.
- **Labels**: exactly one `type:` label plus one or more `area:` labels (resolve names with `list_issue_labels(team)`). Use only the parented `type:`/`area:` system — ignore legacy duplicates like flat `networking` / `Bug` or migrated `area: ci`. Apply only labels that already exist; **never create a label** — if a needed one is missing, ask the user.
- **Priority** `1` Urgent … `4` Low. **Assignee** by name/email/`"me"`. Set `project` and the current `cycle` for active work; add an `estimate` only when planning a cycle.
- Break large work into sub-issues with `parentId` rather than one giant issue.
- **Description**: Markdown with literal newlines. Bug → Problem / Root cause / Fix; task → Goal / Tasks / Acceptance. Reference code as `path:line`.

## Status & Branch Linking

- Lifecycle: Backlog → Todo → In Progress → In Review → Done (plus Canceled, Duplicate). Resolve names with `list_issue_statuses(team)`; teams may differ.
- Use the issue's `gitBranchName` (from `get_issue`) as the git branch — Linear's GitHub integration then auto-links the branch and PR and advances status.

## Tooling

`save_issue` creates (omit `id`) and updates (pass `id`). `get_issue(includeRelations:true)` for full context. `list_comments` / `save_comment` for the discussion log. Pass team/project/labels/state/assignee by name.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.