linear-issues
Fetch and view Linear issues/tickets. List, search, read issue details, status, comments. Use when investigating tickets or gathering debugging context.
What this skill does
# Query Linear Issues
Fetch and view Linear issues to gather context for debugging investigations.
## When to Use
- Viewing issue details for debugging context
- Searching for related issues
- Checking issue status and priority
- Reading issue descriptions and comments
- Finding issues by ID or search query
## Pre-flight Checks
### Authentication
```bash
# linearis uses API token from environment or config
# Check if linearis is available
linearis --version 2>/dev/null || {
echo "linearis CLI not installed"
echo "Install: npm install -g linearis"
exit 1
}
# Test authentication (list with limit 1)
linearis issues list --limit 1 >/dev/null 2>&1 || {
echo "Not authenticated to Linear"
echo "Set LINEARIS_API_TOKEN environment variable or use --api-token flag"
exit 1
}
```
## Common Commands
### Read Issue Details
```bash
# Get issue by ID or identifier
linearis issues read ENG-1234
# Output is JSON - use jq to parse
linearis issues read ENG-1234 | jq '.title'
linearis issues read ENG-1234 | jq '.description'
linearis issues read ENG-1234 | jq '.state.name'
# Full issue details
linearis issues read ENG-1234 | jq '.'
```
### List Issues
```bash
# List recent issues (default limit: 25)
linearis issues list
# Limit results
linearis issues list --limit 10
linearis issues list --limit 100
# Save to file for analysis
linearis issues list --limit 50 > /tmp/linear-issues-$(date +%Y%m%d).json
```
### Search Issues
```bash
# Search by text query
linearis issues search "api-gateway error"
linearis issues search "production crash"
linearis issues search "kubernetes pod"
# Save search results
linearis issues search "database connection" > /tmp/linear-search-$(date +%Y%m%d).json
```
## Output Format
All linearis commands output JSON. Use `jq` to parse and extract fields.
**Common jq patterns**:
```bash
# Extract issue title
linearis issues read ENG-1234 | jq -r '.title'
# Extract state
linearis issues read ENG-1234 | jq -r '.state.name'
# Extract assignee
linearis issues read ENG-1234 | jq -r '.assignee.name'
# Extract labels
linearis issues read ENG-1234 | jq -r '.labels[].name'
# Extract priority (0=None, 1=Low, 2=Medium, 3=High, 4=Urgent)
linearis issues read ENG-1234 | jq -r '.priority'
```
## Output Management
Save issue details for debugging context:
```bash
# Save issue to tmp file
linearis issues read ENG-1234 > /tmp/linear-issue-ENG-1234-$(date +%Y%m%d).json
# Extract key info for quick reference
linearis issues read ENG-1234 | jq -r '{
id: .identifier,
title: .title,
state: .state.name,
priority: .priority,
description: .description
}' > /tmp/issue-summary-ENG-1234.json
# Use issue context for debugging
ISSUE_DESC=$(linearis issues read ENG-1234 | jq -r '.description')
echo "Debugging: $ISSUE_DESC"
```
**Benefits**:
- Issue context informs debugging strategy
- Share investigation files with team
- Correlate issue reports with logs/events
## Advanced Filtering
For detailed jq filtering patterns, see:
- [jq patterns for filtering and analysis](references/JQ-PATTERNS.md)
### Quick Reference
```bash
# Filter by team
linearis issues list --limit 200 | jq '[.[] | select(.team.key == "ENG")]'
# Filter by state
linearis issues list --limit 200 | jq '[.[] | select(.state.name == "In Progress")]'
# Filter by label
linearis issues list --limit 200 | jq '[.[] | select(.labels[]?.name == "Bug")]'
# Search in description
linearis issues list --limit 200 | jq '[.[] | select(has("description") and (.description | contains("error")))]'
# Extract summary
linearis issues list --limit 50 | jq '.[] | {
id: .identifier,
title: .title,
state: .state.name,
assignee: .assignee.name // "Unassigned"
}'
```
## Tips
- Use identifiers like `ENG-1234` instead of UUIDs for readability
- Pipe output to `jq` for parsing JSON
- Save issue details before debugging to preserve context
- Search results are limited - use specific queries
- Issue descriptions often contain error messages, stack traces, or reproduction steps
- Check issue labels for environment info (production, staging, etc.)
- Use `has("field")` in jq to check field existence before accessing
- Use `//` operator in jq for default values when fields might be null
- Use `?` operator for safe array/object navigation (e.g., `.labels[]?`)
- Save filtered results to files for further analysis
- Increase `--limit` (max usually 200) for comprehensive searches
- Priority values: 0=None, 1=Low, 2=Medium, 3=High, 4=Urgent
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.