ops-linearlisted
Install: claude install-skill Lifecycle-Innovations-Limited/claude-ops
# OPS ► LINEAR COMMAND CENTER
## Runtime Context
Before executing, load available context:
1. **Secrets**: Linear API key required for MCP fallback queries.
### Secret Resolution
- Check `$LINEAR_API_KEY` env var
- Then: Doppler MCP tools (`mcp__doppler__*`) — if Doppler MCP server is configured
- Then: `doppler secrets get LINEAR_API_KEY --plain` (if doppler CLI configured in prefs)
- Then: use `password_manager_config.query_cmd` from `${CLAUDE_PLUGIN_DATA_DIR:-$HOME/.claude/plugins/data/ops-ops-marketplace}/preferences.json`
- If unavailable, use Linear MCP tools exclusively (no curl fallback possible)
2. **Preferences**: Read `${CLAUDE_PLUGIN_DATA_DIR}/preferences.json` for `secrets_manager` / `doppler` config.
## CLI/API Reference
### Linear GraphQL (fallback when MCP unavailable)
| Command | Usage | Output |
|---------|-------|--------|
| `curl -X POST https://api.linear.app/graphql -H "Authorization: $LINEAR_API_KEY" -H "Content-Type: application/json" -d '{"query":"{ issues(filter: {state: {type: {in: [\"started\",\"unstarted\"]}}}) { nodes { id title state { name } priority assignee { name } } } }"}'` | Active issues | JSON |
| `curl -X POST https://api.linear.app/graphql -H "Authorization: $LINEAR_API_KEY" -H "Content-Type: application/json" -d '{"query":"{ cycles(filter: {isActive: {eq: true}}) { nodes { id number startsAt endsAt } } }"}'` | Current cycles | JSON |
---
## Phase 1 — Load data
Run in parallel:
1. `mcp__linear__list_teams`