Skip to content
Agentmart
Submit a tool

issue

Use this skill when the user asks you to turn a design note's action items into Linear issues, OR when the user wants to iterate on an existing Linear issue…

Skill by asabina-de

IndexedCC-BY-4.0★ 1
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/asabina-de-issue

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use this skill when the user asks you to turn a design note's action items into Linear issues, OR when the user wants to iterate on an existing Linear issue, OR when the user wants to create a new issue freeform (without a design note). Filing mode triggers: 'file tickets from this note', 'linearize X', 'create Linear issues for the action items in X', 'turn this note into tickets', 'ship this to Linear', 'file these TODOs from the design note', 'make tickets from X', 'issue this note', 'create issues from X.md'. Iteration mode triggers: user passes a Linear issue URL (e.g. https://linear.app/...) or issue ID (e.g. VID-123) with a follow-on prompt like 'help me refine this', 'roast this scope', 'add context about X', 'what questions should we answer first', 'sharpen the description', or any request to think about, improve, or comment on an existing issue. Freeform mode triggers: 'create an issue for X', 'file a ticket about Y', 'new issue: Z', 'ticket this', or any request to create a Linear issue without referencing a design note or existing issue. Also trigger when the user invokes `/issue`. Do NOT trigger for creating Linear documents (that's the decision skill's strategy-routing path), for filing tickets from records in `status: decided` (decisions are made; they don't spawn tickets — only `status: exploring` records have actionable items), or for any operation that would also commit to git.

Use cases: design, productivity, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/issue

Tools it pre-approves 21

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash
  • Glob
  • Grep
  • Read
  • Edit
  • WebFetch
  • AskUserQuestion
  • Skill
  • mcp__claude_ai_Linear__list_issues
  • mcp__claude_ai_Linear__get_issue
  • mcp__claude_ai_Linear__save_issue
  • mcp__claude_ai_Linear__list_comments
Show 9 more
  • mcp__claude_ai_Linear__list_teams
  • mcp__claude_ai_Linear__get_team
  • mcp__claude_ai_Linear__list_projects
  • mcp__claude_ai_Linear__get_project
  • mcp__claude_ai_Linear__list_issue_statuses
  • mcp__claude_ai_Linear__list_issue_labels
  • mcp__github__list_pull_requests
  • mcp__github__pull_request_read
  • mcp__github__search_pull_requests

What's inside

Skill name
issue
Description
Use this skill when the user asks you to turn a design note's action items into Linear issues, OR when the user wants to iterate on an existing Linear issue, OR when the user wants to create a new issue freeform (without a design note). Filing mode triggers: 'file tickets from this note', 'linearize X', 'create Linear issues for the action items in X', 'turn this note into tickets', 'ship this to Linear', 'file these TODOs from the design note', 'make tickets from X', 'issue this note', 'create issues from X.md'. Iteration mode triggers: user passes a Linear issue URL (e.g. https://linear.app/...) or issue ID (e.g. VID-123) with a follow-on prompt like 'help me refine this', 'roast this scope', 'add context about X', 'what questions should we answer first', 'sharpen the description', or any request to think about, improve, or comment on an existing issue. Freeform mode triggers: 'create an issue for X', 'file a ticket about Y', 'new issue: Z', 'ticket this', or any request to create a Linear issue without referencing a design note or existing issue. Also trigger when the user invokes `/issue`. Do NOT trigger for creating Linear documents (that's the decision skill's strategy-routing path), for filing tickets from records in `status: decided` (decisions are made; they don't spawn tickets — only `status: exploring` records have actionable items), or for any operation that would also commit to git.
License
CC-BY-4.0
Allowed tools
Bash, Glob, Grep, Read, Edit, WebFetch, AskUserQuestion, Skill, mcp__claude_ai_Linear__list_issues, mcp__claude_ai_Linear__get_issue, mcp__claude_ai_Linear__save_issue, mcp__claude_ai_Linear__list_comments, mcp__claude_ai_Linear__list_teams, mcp__claude_ai_Linear__get_team, mcp__claude_ai_Linear__list_projects, mcp__claude_ai_Linear__get_project, mcp__claude_ai_Linear__list_issue_statuses, mcp__claude_ai_Linear__list_issue_labels, mcp__github__list_pull_requests, mcp__github__pull_request_read, mcp__github__search_pull_requests
Instructions
671 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves any shell command

Agent Skills spec issues

  • description: longer than 1024 characters
  • body: 671 lines (spec recommends under 500)

Files (1)

  • SKILL.md

SKILL.md (first lines)

# issue

Create Linear issues — from a design note's action items, from an existing ticket (iteration), or freeform from a prompt. All modes enforce value-oriented titles via a quality gate and flag well-formed but premature tickets via an advisory scope gate, use an in-chat confirmation gate, and support idempotent re-runs.

The defining design principles of this skill are:

> **The design note is the single source of truth. The skill reads it, derives tickets, and writes Linear ticket IDs back into it. No parallel work-plan file. No re-modeling.**
>
> **Confirm in chat, not via files.** The skill prints proposed tickets in the conversation, confirms with the user in one shot, and creates on approval. One invocation, one session.
>
> **Idempotent re-runs.** A note that's already been linearized has inline `Linear: LIN-NNN` annotations. The skill detects them and updates instead of duplicating.
>
> **Descriptions stay minimal; comments carry the thinking.** A ticket's title and description are stable and concise — what the work is, nothing more. Scope crystallization (additions, reductions, pushback, context, reasoning) happens through comments, which are never rewritten and so preserve the history of thinking. Keep descriptions short and pragmatic. Never use them as a context dump from the design note — the backlink to the note is enough. This principle applies in both filing mode and iteration mode.

## How this fits the broader workflow

```
prompt
  │
  ▼
decision skill  →  design note (with action items in canonical sections)
  │
  ▼
[HITL gate: human reviews, edits, greenlights the note]
  │
  ▼
issue       →  prints proposed tickets in chat
  │
  ▼
[HITL gate: user confirmation]
  │
  ▼
creates tickets + writes Linear: LIN-NNN annotations back into the note
```

The human gate on the design note itself is where the real review happens. By the time `issue` runs, the note is greenlit — ticket derivation is mechanical. The in-chat confirmation is a final sanity check, not a deep review.

## Tools declared in allowed-tools

- File discovery and reading tools (`Glob`, `Grep`, `Read`) — discover and parse the design note
- File editing tool (`Edit`) — append cross-references and Status Log rows back to the note
- URL fetching (`WebFetch`) — follow URLs referenced in the note when enriching ticket descriptions
- User confirmation (`AskUserQuestion`) — the confirmation gate (and batched clarification if needed)
- Linear MCP read tools — search for existing tickets, resolve teams/projects, look up statuses and labels
- `Skill` — invoke the `comment` skill for posting comments to Linear issues
- Linear MCP write tools — create or update the issue on Linear (e.g. `save_issue`)

The skill does not declare `Task` — there is no parallel research phase. Ticket derivation is deterministic and serial.

The skill does not declare `Write` — it never creates new files. It only edits the existing design note (appending cross-references and a Status Log row).

## Phase 0 — Preflight

### Parse invocation and detect mode

Examine the first argument (or the full prompt if no explicit argument):

- **Iteration mode** — if the input contains a Linear issue URL (`https://linear.app/...`) or a bare issue identifier matching the pattern `[A-Z][A-Z0-9]*-\d+` (e.g. `VID-123`, `Z-419`, `A1-221`), enter **iteration mode**. The character class admits digits after the first letter because a team key may contain them; `[A-Z]+` would not match `A1-221`, silently dropping through to freeform mode and filing a *new* ticket instead of iterating on the existing one. Capture the issue ID and the rest of the prompt as the user's intent. Skip to the [Iteration mode](#iteration-mode) section below; do not run the filing-mode phases.
- **Filing mode** — if the input references a decision record path (explicitly or inferable from `docs/decisions/`), enter **filing mode**. Continue with the filing-mode phases below.
- **Freeform mode** — if the input is neither a Linear URL/ID nor a design note path — e.g. "create an issue for X", "file a ticket about Y", "new issue: Z", a bare description of work to be ticketed, or a batch of items to file — enter **freeform mode**. Skip to the [Freeform mode](#freeform-mode) section below.

### Rename the session

After detecting the mode, rename the session to reflect the scope:

Rename the session so the user can identify it at a glance (e.g. in a terminal tab). A good name reflects the mode and scope — e.g. "card layout abstraction (issue)" for filing, "VID-123 OAuth2 Google login (issue:iterate)" for iteration, or "auth token storage (issue:freeform)" for freeform.

If a tool or command is available to rename the session programmatically, use it. Otherwise, suggest the user rename it — but don't block on this. Move on to the next phase either way.

### Triage: check for duplicates and scope overlap

Before creating any new issue — whether from a design note or freeform — run a tiered check to avoid duplicates, scope overlap, and contradictions in the backlog. This applies in both filing mode and when other skills (pair, freeform conversation) route through issue creation to create a ticket.

**Tier 0 — Project fit (always run, before anything else):**

Check whether each proposed ticket belongs in the ambient project or should route elsewhere. Don't default to the current project without questioning it.

Heuristics:
- **References skill files, agent infrastructure, `CLAUDE.md`/`AGENTS.md`, or cross-project tooling** → suggest the KB (Knowledge Base) project.
- **References product code, features, domain concepts, or user-facing behavior** → keep in the current project.
- **References CI/CD, deployment, or repo-specific infrastructure** → keep in the repo's own project.
- **Ambiguous** → surface it: "This looks like it might belong in {other-project} — route there, or keep in {current-project}?"

When filing a batch, run the check per ticket — different items may route to different projects. If any ticket routes differently from the ambient project, flag it explicitly in the confirmation output (Phase 3).

**Tier 1 — Current work (always run, lightweight):**
- Check the current branch and the last 2 branches worked on (`git branch --sort=-committerdate | head -3`).
- Cross-reference with GitHub — list pull requests and read PR details (e.g. `list_pull_requests`, `pull_request_read`) to confirm merge state — local state may be stale.
- If an in-progress branch covers this scope, surface it: "This looks like it fits in VID-XYZ which is still on branch X — want me to fold it in?"

**Tier 2 — Related issues (always run):**
- If a ticket ID is known (from the branch name, the design note, or the user's prompt), fetch the issue from Linear (e.g. `get_issue`) with relations included and check its related issues.
- Scan the related issues for scope overlap or contradictions with the proposed new ticket.

**Tier 3 — Backlog scan (run when the issue is complex or duplicates seem likely):**
- Search for related issues on Linear (e.g. `list_issues`, filtered by project and team) for tickets with similar titles or keywords.
- If matches are found, present them: "These existing tickets look related — should we extend one of them, or is this genuinely new?"
- Propose resolution: merge scopes, re-prioritize an existing ticket, mark as duplicate, or confirm isolation.

If the triage surfaces a match, ask the user to choose:
- **Fold into VID-XYZ** — add scope to the existing ticket (comment the new context)
- **Stack on VID-XYZ** — create as a sub-issue or related issue
- **Mark as duplicate** — set `duplicateOf` on the old ticket, transition to Cancelled, and **comment why** on the cancelled ticket (see cancellation rule below)
- **Create new** — confirmed isolated, proceed with filing
- **Cancel** — the user decides to handle it differently

Only proceed to filing after the user confirms the triage result.

### Cancellation and duplication rule

**Every ticket state change that removes a ticket from the active backlog (Cancelled, Duplicate) must carry a comment explaining why.** A cancelled ticket with no explanation is a dead end for anyone reviewing the backlog later — they can't tell if it was superseded, descoped, invalid, or accidentally closed.

When cancelling or duplicating a ticket:
1. Post a comment via `/comment` with a heading like "Cancelled: {reason}" or "Duplicated by {TICKET-ID}"
2. Include a one-sentence explanation of why (e.g. "KB-36 bundles this rename with two others — same mechanical pattern, one ticket instead of three")
3. If superseded by another ticket, reference it so readers can follow the chain

This rule applies regardless of which skill triggers the cancellation — `/issue` triage, `/pair` scope discovery, or manual operator action. If the operator cancels directly, suggest the comment.

From asabina-de/kb, CC-BY-4.0.

More from asabina-de/kb

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Oct 15, 2026 (13 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
CC-BY-4.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from asabina-de

Cite this page

issue skill. Agent Mart. https://agentmart.dev/skills/asabina-de-issue (last updated 2026-10-24)