agents/linear/SKILL.md
Creates and manages Linear issues for analytics work. Also posts weekly status reports to Slack. Use when someone asks to create an issue, track a task in Linear, link work to Linear, or send a status update.
npx skillsauth add lightricks/ltx-analytics-agents linearInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Issue Management:
Status Reporting:
Issue Management: A Linear issue in one of the PA (Product Analytics) teams with:
Status Reporting: A weekly status report posted to #ltx-pa Slack channel with:
The skill works with 3 Product Analytics teams:
| Team | Team ID | Prefix | Use for |
|------|---------|--------|---------|
| PA Missions | b3751c9a-e25e-44c0-9056-798c7e4169950 | PAM | Mission-critical analytics work, strategic initiatives |
| PA - PM | b6437834-b873-4c8d-aa93-e4493bab58fd | PAPM | Product Manager requests, feature analytics |
| PA - BI | db3fac73-5bec-4179-8081-01533b38e4fa | PABI | BI infrastructure, data platform, tooling |
Default team: PA Missions (for most analytics/data work)
Note: PA - BI uses different status naming than PA Missions/PM:
PHASE 1: GATHER → Issue details
↓
PHASE 2: CONFIRM → Show preview, ask for status
↓
✋ USER APPROVES
↓
PHASE 3: CREATE → Create in Linear
↓
PHASE 4: REPORT → Share issue URL
PHASE 1: QUERY → Fetch all PA team issues (exclude Backlog/Done/Canceled)
↓
PHASE 2: FORMAT → Group by team and status, format message
↓
PHASE 3: POST → Send to #ltx-pa Slack channel
↓
PHASE 4: CONFIRM → Report summary to user
Goal: Collect all information needed for the issue.
Determine team assignment:
Collect issue details:
Check for PR context:
Goal: Show the user what will be created and get status.
Present issue preview:
## Linear Issue Preview
**Team:** {team_name} ({prefix})
**Title:** {title}
**Priority:** {priority}
**Labels:** {labels if any}
**Description:**
{description}
{If PR linking: **Linked PR:** #{pr_number}}
Ask for status:
CRITICAL: NEVER default to "Triage". Always ask the user to choose from available statuses.
PA Missions / PA - PM statuses:
PA - BI statuses (different naming):
Exception: If this issue is being created by linking to an existing PR, automatically set status to "In Review" (no need to ask).
Get user approval:
Goal: Create the issue in Linear via API.
Use Linear MCP or API to create the issue with:
If PR linking requested:
[{PREFIX}-{ID}] {original title}Goal: Confirm creation and share the issue URL.
Report to user:
✅ Linear issue created: {issue_url}
{PREFIX}-{ID}: {title}
Team: {team_name}
Status: {status}
{If PR linked: Linked to PR #{pr_number}}
{If PR title needs updating:
💡 Tip: Update your PR title to include [{PREFIX}-{ID}] for better tracking}
Copy issue key to clipboard (if possible) for easy pasting
Goal: Fetch all active issues from all PA teams.
Query Linear API for all PA team issues with filters:
b3751c9a-e25e-44c0-9056-798c7e4169950)b6437834-b873-4c8d-aa93-e4493bab58fd)db3fac73-5bec-4179-8081-01533b38e4fa)Group issues by team first, then by status within each team
Goal: Create a clear, actionable status message for Slack.
Format message using this template:
📊 *Product Analytics - Weekly Status*
_Week of {date}_
## 🎯 PA Missions
*🔄 In Progress* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*👀 In Review* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*📋 Todo* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
## 📊 PA - PM
*🔄 In Progress* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*👀 In Review* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*📋 Todo* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
## 🔧 PA - BI
*🔄 Currently in work* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*👀 In Review* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
*📋 Ready to work* ({count})
{for each issue:}
• [{PREFIX}-{ID}] {title} - {assignee}
{issue_url}
---
*Total active issues:* {total_count} (PAM: {pam_count}, PAPM: {papm_count}, PABI: {pabi_count})
Order sections by team (PA Missions → PA - PM → PA - BI), then by workflow progression within each team: In Progress → In Review → Todo
Include assignee info (if available) or mark as "Unassigned"
Skip empty sections - If a team has no issues in a particular status, omit that status section
Goal: Send the formatted message to Slack.
Post to Slack channel #ltx-pa using Slack MCP
Use thread-friendly format - main message should be scannable, details in thread if needed
Goal: Confirm successful posting to the user.
✅ Posted PA team status to #ltx-pa
Summary by team:
- PA Missions: {pam_count} active issues
- PA - PM: {papm_count} active issues
- PA - BI: {pabi_count} active issues
- Total active: {total}
{slack_message_url}
Issue Creation (Flow A):
bug, feature, dashboard, data-quality, performance, etc.Status Reporting (Flow B): 7. All PA teams - Weekly reports include all 3 PA teams (PA Missions, PA - PM, PA - BI), grouped by team. 8. Exclude completed/inactive - Never include status types: backlog, completed, canceled (Backlog, New requests, Done, Canceled, Duplicate). 9. Post to #ltx-pa - Always use the ltx-pa Slack channel for status reports. 10. Show assignees - Include who's working on each issue (or mark "Unassigned"). 11. Respect team naming - PA - BI uses different status names (Currently in work, Ready to work) than other teams.
User: "Create an issue for the retention dashboard showing wrong numbers"
Phase 1 - Gather:
Phase 2 - Confirm & Status: Ask user: "What status should I set? (Backlog / Todo / In Progress / etc.)" User: "Todo"
Phase 3 - Create: Create PAM-XXX in PA Missions team with status "Todo"
Phase 4 - Report: "✅ Created PAM-234: Fix retention calculation in LTX Studio dashboard"
User: "Track this work in Linear" (while working on PR #15)
Phase 1 - Gather:
Phase 2 - Confirm & Status: AUTO-SET status to "In Review" (because PR exists)
Phase 3 - Create: Create PAPM-XXX linked to PR #15
Phase 4 - Report: "✅ Created PAPM-89: Add enterprise segmentation to usage dashboard Linked to PR #15 Status: In Review
💡 Tip: Update PR title to [PAPM-89] Add enterprise segmentation to usage dashboard"
User: "Send PA status to Slack"
Phase 1 - Query:
Phase 2 - Format:
📊 *Product Analytics - Weekly Status*
_Week of Feb 23, 2026_
## 🎯 PA Missions
*🔄 In Progress* (2)
• [PAM-42] Build revenue attribution dashboard - @sarah
https://linear.app/ltx/issue/PAM-42
• [PAM-38] Add LTX Model cost tracking - @daniel
https://linear.app/ltx/issue/PAM-38
*👀 In Review* (1)
• [PAM-45] Fix enterprise segmentation logic - @alex
https://linear.app/ltx/issue/PAM-45
*📋 Todo* (3)
• [PAM-47] Add API usage breakdown by endpoint - Unassigned
https://linear.app/ltx/issue/PAM-47
• [PAM-46] Create cohort retention dashboard - Unassigned
https://linear.app/ltx/issue/PAM-46
• [PAM-44] Optimize funnel query performance - @sarah
https://linear.app/ltx/issue/PAM-44
## 📊 PA - PM
*🔄 In Progress* (1)
• [PAPM-23] Add usage dashboard for new feature - @mike
https://linear.app/ltx/issue/PAPM-23
*📋 Todo* (2)
• [PAPM-24] Create retention cohort analysis - @emma
https://linear.app/ltx/issue/PAPM-24
• [PAPM-22] Fix funnel conversion tracking - Unassigned
https://linear.app/ltx/issue/PAPM-22
## 🔧 PA - BI
*🔄 Currently in work* (1)
• [PABI-87] Migrate to new BigQuery tables - @jordan
https://linear.app/ltx/issue/PABI-87
*👀 In Review* (1)
• [PABI-88] Optimize BigQuery costs - @alex
https://linear.app/ltx/issue/PABI-88
*📋 Ready to work* (1)
• [PABI-89] Update dbt models for new schema - Unassigned
https://linear.app/ltx/issue/PABI-89
---
*Total active issues:* 12 (PAM: 6, PAPM: 3, PABI: 3)
Phase 3 - Post: Post formatted message to #ltx-pa
Phase 4 - Confirm: "✅ Posted PA team status to #ltx-pa
Summary by team:
https://lightricks.slack.com/archives/C123456/p1234567890"
Linear MCP (required for both flows):
Slack MCP (required for Flow B only):
If Linear MCP is not available, provide manual instructions for creating the issue. If Slack MCP is not available for status reports, format the report and provide it to the user to post manually.
development
Adds the analyst layer (segmentation framing, filter/KPI surfacing, LTX-specific definitions, contextual follow-ups) on top of any Data MasterMind data interaction for LTX stakeholders (PMs, marketers, design, leadership). Wraps `get-data` / `validate-data` / `understand-data` / `visualize-data` — dialing intensity from a full guided session (for "look into X", "investigate Y", "do an analysis of …") down to a compressed wrap (for "what's MRR?", "is this number right?"). Output mode (chat-only or HTML artifact) is chosen up front for session-style asks. Always asks about Enterprise / paid non-Enterprise / Free segmentation and Studio-feature tier-gating when relevant. Do NOT use only when the user explicitly opts out ("just give me the number, no extras") or for templated feature dashboards (that's the Hex-based `dashboard-builder`).
testing
Generate LTX Studio sales opportunities report and credit limit alerts. Covers pipeline by rep/product (yesterday + QTD), new PELs/PQLs, future meetings, and enterprise orgs at 80%+ token usage. Use when: sales standup, pipeline review, account health check, or when asked for 'sales numbers' or 'credit alerts'.
data-ai
Generate LTX Studio product daily report with revenue, usage by segment (Enterprise, Pilot, Paying Non-Enterprise, Free), and DoD/DOW-avg comparisons. Use when: daily product standup, executive reporting, or when asked for 'yesterday's product numbers'.
data-ai
Generate LTX Studio marketing & sales daily report with lead gen, spend, PELs/PQLs, sales metrics, and top org usage vs 7-day averages. Use when: daily marketing standup, GTM review, or when asked for 'marketing numbers' or 'lead performance'.