Linear에서 특정 프로젝트와 레이블의 활성 이슈(Canceled/Delivered 제외)를 조회하여 출력한다.

Read Linear Issues

특정 프로젝트와 레이블이 붙은 Linear 이슈 중 활성 상태(Canceled, Delivered 제외)인 이슈를 조회하여 출력한다.

입력값

사용자에게 다음 두 가지를 입력받는다:

  • 프로젝트 이름: Linear 프로젝트명
  • 레이블 이름: 이슈에 적용된 레이블명

입력값이 제공되지 않은 경우 AskUserQuestion으로 요청한다.

Process

Step 1: 입력값 확인

사용자가 프로젝트 이름과 레이블 이름을 모두 제공했는지 확인한다.

  • 둘 다 제공된 경우: Step 2로 진행
  • 하나라도 누락된 경우: AskUserQuestion으로 누락된 값을 요청

Step 2: 프로젝트 존재 확인

mcp__linear__list_projects를 호출하여 입력된 프로젝트 이름이 존재하는지 확인한다.

  • 정확히 일치하는 프로젝트가 있으면 해당 프로젝트 사용
  • 없으면 유사한 이름의 프로젝트 목록을 보여주고 AskUserQuestion으로 재선택 요청

Step 3: 레이블 존재 확인

mcp__linear__list_issue_labels를 호출하여 입력된 레이블 이름이 존재하는지 확인한다.

  • 정확히 일치하는 레이블이 있으면 해당 레이블 사용
  • 없으면 유사한 이름의 레이블 목록을 보여주고 AskUserQuestion으로 재선택 요청

Step 4: 이슈 조회

mcp__linear__list_issues를 호출하여 해당 프로젝트 + 레이블 조건의 이슈를 조회한다.

호출 파라미터:

  • project: Step 2에서 확인한 프로젝트명
  • label: Step 3에서 확인한 레이블명
  • limit: 250 (최대)
  • includeArchived: false

Step 5: 상태 필터링

조회된 이슈 중 다음 상태의 이슈를 제외한다:

  • Canceled (취소됨)
  • Done / Delivered (완료됨)

나머지 활성 상태의 이슈만 결과에 포함한다:

  • Backlog, Triage, Todo, In Progress, In Review 등

Step 6: 결과 출력

필터링된 이슈를 테이블 형식으로 출력한다:

1## {프로젝트명} - {레이블명} 활성 이슈 ({N개})
2
3| # | Identifier | 제목 | 상태 | 담당자 | 우선순위 |
4|---|------------|------|------|--------|----------|
5| 1 | XXX-123 | 이슈 제목 | In Progress | 담당자명 | High |
6| ... | ... | ... | ... | ... | ... |
  • 이슈가 없으면 "해당 조건에 맞는 활성 이슈가 없습니다." 메시지 출력
  • 250개 이상일 수 있는 경우 "더 많은 이슈가 있을 수 있습니다" 안내

Rate Limit 방지

  • 모든 Linear API 호출은 순차 실행한다
  • Step 2, 3은 독립적이므로 병렬 호출 가능하나, Linear API 특성상 순차 실행을 권장한다

Example Usage

Basic

1/read-linear-issues

-> 프로젝트명과 레이블명을 대화형으로 입력받음

With Arguments

1/read-linear-issues project: 쏘카인드 MVP, label: User Story

-> 바로 조회 실행