For the complete documentation index, see llms.txt. This page is also available as Markdown.

luciq-automate

The luciq-automate skill drives the Luciq CLI to export, aggregate, and schedule Luciq data, and to gate builds on exit codes.

Drive Luciq from a shell so the answer can leave the conversation — into a file, a script, a scheduled job, or a build's exit code — instead of being read by a person.

Every data command the skill runs proxies to the same server-side tool the Luciq MCP server exposes, under the same role permissions and plan entitlements. Its value over MCP is never extra data. It's determinism and composability (an exact command you can commit, diff, schedule, and pipe), volume (aggregating before anything reaches the conversation instead of reading every record to count it), and exit codes (which the MCP has none of, so it can't gate a build).

Use this skill when

  • The user wants a command they can re-run, commit, or schedule instead of a one-off answer.

  • The user asks to export or dump a large set of Luciq data — all crashes, all bugs, every app — to a file or spreadsheet.

  • The user wants a count, total, or breakdown that needs many records to compute, or anything spanning several apps at once.

  • The user wants output piped into jq, a shell script, or another tool.

  • The user needs something to run on a schedule or unattended (cron, CI, a container with no MCP client), or to gate a build on the result.

  • Triggers include "export all ...", "dump ... to CSV", "how many ... per version", "totals by ...", "across all our apps", "every Monday", "on a cron", "in our pipeline", "fail the build if ...", "pipe into ...", "what's the luciq command for X", "script this Luciq query".

  • A genuinely conversational one-off about a single crash, bug, or app is still luciq-debug or luciq-readout's job. Uploading symbol files, or wiring uploads into CI, is luciq-symbolicate's job.

What the agent does

  • Instrument choice, up front. Decides whether the job needs the CLI before doing anything, using what the job actually needs rather than how the request was phrased — many records reduced to few, several apps at once, a file destination, an unattended run, or a build gate all route here even if nobody said "command".

  • Install, authenticate, verify. Checks whether the CLI is installed, installs it if not, authenticates with luciq login or LUCIQ_AUTH_TOKEN, and confirms with luciq whoami before running anything that talks to the API.

  • Builds the command. Resolves the app to a real slug and confirms the mode, then builds the command from typed flags where they exist and falls back to --filters for anything else.

  • Aggregates before reading. Reduces a count, total, or breakdown in the pipe with jq rather than paging every record into the conversation to count it by hand.

  • Makes it repeatable. Redirects a file or spreadsheet destination, states the token-ownership caveat for a scheduled job, and makes a build gate's failure message name the threshold that broke and the actual value.

  • Gated writes. Shows the exact write command — bugs update, an alert or incident change, a funnel change — verbatim, and waits for explicit approval before running it.

  • luciq help as the final authority. Treats the installed binary, not its own reference tables, as ground truth. Any rejected flag or unknown subcommand sends it to luciq <group> help <subcommand> rather than inventing one.

  • No leaked credentials. Never echoes, logs, commits, or pastes a token, and avoids running luciq info in shared output since it prints the configured token in plaintext.

Install

The fastest path is the plugin install. Add the marketplace and install:

Works in Claude Code and Cursor. The plugin install also wires up the Luciq MCP server in one step.

After install, the skill is available as /luciq-skills:luciq-automate.

For other agents, install via npm:

Or copy SKILL.md from the public repo to ~/.claude/skills/luciq-automate/SKILL.md (user-global) or .claude/skills/luciq-automate/SKILL.md (project-local). The full SKILL.md is reproduced in the expandable below.

📋 Click to expand the full SKILL.md

Prerequisites

  • A shell. The Luciq MCP server isn't involved in this skill at all — it installs and authenticates the CLI itself in Step 1.

  • A CLI token, generated at dashboard.luciq.ai/company/luciq-cli. It's a personal credential tied to the user's own dashboard role, not a service account, and it authenticates every command.

A scheduled job or CI step built on a personal CLI token breaks when that person rotates their token or leaves. The skill states this caveat out loud whenever it wires a cron job or a pipeline step.

How the agent automates Luciq data

Step 1. Install, authenticate, verify

The agent checks whether the CLI is installed (luciq version), installs it if missing (Homebrew or the gem), gets a token in place via luciq login or LUCIQ_AUTH_TOKEN, points at the right cluster if self-hosted, and confirms with luciq whoami — never declaring success without that verification.

Step 2. Build the command

The agent resolves the app to a real slug with luciq apps list, confirms the mode (each mode is a separate dataset), and builds the command from typed flags where they exist, falling back to --filters for anything else. Typed flags win on key conflicts with the raw filter object.

Step 3. Reduce before anything is read

When the user wants a count, a total, or a breakdown, the agent aggregates it in the pipe with jq rather than paging every record into the conversation to count by hand. It checks the first line of output before piping, since output is enveloped JSON ({"bugs": [...]}, {"crashes": [...]}) except for alerts list and incidents list, which are CSV. It paginates deliberately, respecting the 100-requests-per-60-seconds-per-IP rate limit.

Step 4. Make it repeatable

Depending on the destination, the agent redirects output to a file rather than printing it, calls out the token-ownership caveat for a scheduled job, makes a build gate's failure message name the threshold and the actual value, or places a committed command where the team will find it.

Gate writes

For anything that changes production state — bugs update, an alert or incident change, an APM funnel change — the agent confirms the target against a read command first, shows the exact command it intends to run verbatim, and waits for explicit approval before running it. Rule-based bug deduplication and alert authoring route to luciq-group-bugs and luciq-alert-config instead, since those skills carry the plan-and-approve machinery for it.

Out of scope

The skill won't fabricate CLI output — if a command wasn't run, it says so and shows the command rather than presenting a plausible-looking result. It treats luciq help as outranking its own reference tables: any rejected flag or unknown subcommand sends it to the live help text instead of inventing one. It never echoes, logs, or pastes a token, and avoids luciq info in shared output since that command prints the token in plaintext. It also won't shell out to the CLI as a workaround for a blocked MCP call — both hit the same backend under the same permissions, so the block holds either way.

Last updated