About linear-status
A read-only skill that diagnoses the current phase of a Linear issue and recommends how to resume work. It bases its assessment on issue state and validated comments rather than memory, and identifies missing evidence or state conflicts.
Key features
- 01Linear issue phase detection
- 02Marked comment and dashboard validation
- 03Claim lock staleness checks
- 04Evidence and blocker reporting
- 05Recommended next workflow skill
Use cases
- 01Determining what to do next on an issue
- 02Finding conflicting labels and status evidence
- 03Checking whether an issue claim lock is stale
MCP support
Uses Linear MCP read tools, when available, to retrieve issue details and comments. It validates marked comments and the issue description dashboard; it does not change issue state unless explicitly acting as a finalizer with write tools.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ lkshrk/ linear-ai --skill linear-statusAfter installing, type/linear-statusin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamldocs/workflow.mdschemas/linear-ai.claim.v1.schema.yamllinear-ai.dashboard.v1.schema.yamllinear-ai.plan.v1.schema.yamllinear-ai.review-ledger.v1.schema.yamllinear-ai.status.v1.schema.yamlscripts/validate_marked_comments.tsDetails
From the project READMELinear Status
Use this as the read-only status and resume detector for one Linear issue. Start here when an agent is unsure what to do next.
Linear MCP Contract
Use these Linear MCP tools when available:
get_issue- read the issue description dashboard, labels, status, assignee, project, branch metadata, and links.list_comments- find the newest marked plan and status comments.
Validate marked comments and the issue description dashboard with:
scripts/validate_marked_comments.ts --description <issue-description-file> <comment-file>
Use the local JavaScript package manager or runtime available to the agent: Bun can run the .ts scripts directly; Node/npm/pnpm/yarn environments should run them through a TypeScript runner such as tsx.
If Linear MCP read tools are unavailable, ask for pasted issue description, labels, status, and newest marked comments. If Linear MCP write tools are unavailable or the issue state needs repair, emit REQUIRED_LINEAR_MUTATIONS with exact description, labels, status, and comments to apply.
Phase Detection
Determine current phase from actual issue state, not memory:
setup-blocked- required Linear labels, projects, or component/type labels are missing; runlinear-doctor.create-issue- no Linear issue exists or intake metadata is incomplete; runlinear-create-issue.refine-plan- issue hasllm-refine, no valid ready plan, or open product questions; runlinear-refine.implement- issue hasllm-readyand newest valid plan hasplan_status: ready; runlinear-implement.blocked- issue hasllm-blockedor newest status comment has unresolved questions; runlinear-refineor ask the listed blocker question.review-handoff- issue hasllm-reviewor newest status comment isreview_ready; prepare human review.repair-state- labels, description dashboard, and comments disagree, multiplellm-*states are present, newest marked comment is invalid, required dashboard/status evidence is missing, or thein-useclaim lock is stale or contradictory (see Claim Lock Check).
When labels, the description dashboard, and comments disagree, prefer validated marked evidence as evidence, then recommend the smallest description, label, or status repair.
Claim Lock Check
Inspect the in-use claim lock per the Claim Lock Rule in docs/workflow.md and report a claim-stale finding under repair-state when the lock looks orphaned.
Tier 1 — structural contradictions (label-only, reliable). Flag in-use when it cannot legitimately coexist with the current state:
- the issue is Done/closed but still carries
in-use(a missed release), in-useis present with no active work state, or with a state that releases on stop (llm-ready,llm-blocked).
in-use alongside llm-refine, llm-active, or llm-review is a legitimate held lock; do not flag it on labels alone.
Tier 2 — staleness (needs claim metadata). When the linear-ai:claim block is present in the description, treat the lock as stale if now - claimed_at exceeds the stale threshold (default 60 minutes; let the user override). Report claimed_by and the age. If in-use is present but no claim block exists, flag the mismatch (a label and claim block must be present or absent together) and fall back to the Tier 1 checks.
For any stale or contradictory lock, recommend the smallest repair: remove the in-use label and the linear-ai:claim block. Do not apply the repair unless explicitly acting as a finalizer with write tools available; otherwise emit it as REQUIRED_LINEAR_MUTATIONS.
Step Completion Handoff
Report:
- Current phase
- What changed, if this status check repaired or clarified state
- Evidence from issue labels/status and newest marked comments
- Missing evidence
- Open blocker
- Recommended next step
- Recommended next skill
Ask if there is anything else to add for this status step. If yes, continue the current step by re-reading the new evidence. If no, recommend moving to the next workflow step and name the skill to run.
After the add-more question is answered "no", ask whether the user wants to continue with the recommended next skill. Name the recommended next skill explicitly and wait for user confirmation; do not auto-run it.
Use this response shape:
- Current phase
- What changed
- Evidence
- Missing evidence
- Open blocker
- Recommended next step
- Recommended next skill
- Question: Is there anything else to add before moving on?
- Question: Do you want to continue with the recommended next skill?
Stop after producing a phase diagnosis, missing evidence list, and recommended next skill. Do not change issue state unless explicitly acting as a finalizer with write tools available.