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

luciq-alert-noise

Find the alert rules that fire too often to be useful, and fix them at the source. Noise isn't "an alert fired a lot" — it's "an alert fired a lot and the firings weren't individually worth a notification." The skill's job is to cut fatigue without cutting coverage, and every recommendation is grounded in Luciq MCP data rather than guessed from a rule's title.

Use this skill when

  • The user says their alerts are too noisy. "My alerts are too noisy", "I get too many alert emails/notifications".

  • The user wants their alert setup cleaned up. "Clean up / tune / audit my alerts".

  • The user asks which alerts are spammy or fire constantly. "Which alerts are spammy?", "stop paging me so much".

  • The user asks which alert rules fire too often in general.

Not for: adding missing alerts or checking monitoring coverage (use luciq-alert-gaps), creating, changing, or managing one specific alert the user describes (use luciq-alert-config), investigating why something crashed or hung (use luciq-debug), or first-time SDK install (use luciq-setup). Resolving or acknowledging a single firing (an incident) rather than changing the rule itself is a direct one-call action, not a noise audit.

What the agent does

  • Trigger-count triage. Pulls the full alert inventory sorted by how often each rule's conditions were met, and partitions rules into quiet (leave alone) and loud (investigate) using the product's own noise signal.

  • Root-cause diagnosis. For each loud rule, figures out why it's loud — a trivially low threshold, an overly broad scope, correct detection but excessive paging, an exact duplicate of another rule, or a fully redundant rule — before picking a fix.

  • Safety-critical protection. Never weakens detection or disables alerts that are supposed to fire loudly because each firing is a real emergency (a crash hitting real users, crash-free or ANR rate dropping below a safety floor). At most, it throttles the notification.

  • Least-destructive remediation. Prefers raising a threshold, narrowing scope, or adding a throttle before recommending disabling a rule, and disabling before deleting.

  • Approval before writing. Presents a per-rule remediation plan, with safety-critical rules called out separately, and only applies changes the user approves.

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-alert-noise.

For other agents, install via npm:

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

📋 Click to expand the full SKILL.md

Prerequisites

The Luciq MCP server must be configured and authenticated. If the alert tools aren't available, the skill stops and directs the user to set up the MCP server, or run luciq-setup.

The skill uses these tools:

Tool
Action
Purpose

read_alerts

list

All alert rules with their conditions_met_count (rolling trigger count) and current status. Sorted by trigger count to surface the worst first.

read_alerts

details

Full payload of one rule, read before updating to mirror its existing shape.

read_alerts

init

Per-app catalog of valid types, triggers, conditions, actions, operators, and lookup IDs — read before any update.

read_incidents

list

Actual firing history, used to judge whether firings were distinct real events or repeats of the same thing.

write_alerts

update

Applies a remediation to a rule. State-changing — the agent confirms first.

write_alerts

delete

Removes a fully redundant rule. State-changing — the agent confirms first.

write_incidents

resolve

Clears stale open firings as an optional side cleanup.

Every "this alert is noisy" claim is based on a value the MCP actually returned — never inferred from a rule's title.

If the alert tools aren't available, the skill stops and points the user to the Luciq MCP server setup, or to run luciq-setup.

What "noisy" means

Luciq tracks how often each rule's conditions are met over a rolling 8-day window and exposes it as conditions_met_count. The dashboard treats a rule crossing 4 matches in that window as a candidate for noise — the skill uses that same threshold as an entry filter for "look closer," not as the final verdict.

A rule only counts as genuinely noisy when both are true: it fires frequently, well above the entry threshold, and the individual firings aren't worth a separate notification — because the threshold is trivially low, the scope is too broad, it duplicates another rule, or it pages on a non-actionable signal. A rule that fires often but where every firing is a real incident isn't noise; the fix there is throttling the notification, not weakening detection.

How the agent reduces alert noise

Step 1. Pull the alert inventory

The agent calls read_alerts with action: list, sorted by trigger count descending, and records each rule's id, type, trigger, conditions, actions, status, and conditions_met_count. Disabled rules are dropped from consideration, since a disabled rule is already silent.

Step 2. Triage by trigger count

The agent partitions the enabled rules into quiet (at or below the 4-match threshold, left alone) and loud (candidates for further diagnosis). If nothing is loud, it reports that plainly and stops rather than inventing problems.

Step 3. Diagnose each loud rule

For each candidate, the agent determines why it's loud before deciding on a fix, pulling firing history via read_incidents when the count alone doesn't make the cause obvious. It maps the cause to a remediation:

Diagnosis
Signal in the data
Remediation

Threshold trivially low

e.g. an occurrence count over 1, or a p95 just above normal

Raise the threshold to a meaningful level

Scope too broad

no conditions set, fires on every crash/request/version

Narrow the conditions (app version, key metric, endpoint)

Detection is right, paging is too frequent

threshold is sound and firings are real, but every match notifies

Add or lengthen a throttle on the action

Exact duplicate of another rule

same type, trigger, and conditions as a sibling rule

Merge — keep one, delete the other

Fully redundant or obsolete

superseded by a broader rule, or watches a retired metric

Disable or delete

Step 4. Protect safety-critical alerts

Some alerts are supposed to fire loudly because every firing is an emergency — a crash hitting a real percentage of users, or crash-free/ANR rate dropping below a safety floor. The agent never weakens detection or disables these; at most it adds a throttle or a small threshold raise, with an explicit note that detection stays intact.

Step 5. Present the plan before touching anything

The agent presents a per-rule table for approval — the rule, why it's noisy (citing the actual trigger count and diagnosis), and the proposed remediation — with safety-critical rules called out separately so the user can see they're being handled conservatively. Nothing is written yet.

Step 6. Apply approved remediations

For each approved rule, the agent reads the app's init catalog and the rule's current details, changes only the field the remediation targets, and calls write_alerts with update (or delete for a confirmed merge or redundant rule). It confirms each change back to the user with the new effective behavior.

Step 7. Optional — clear stale firings

If the audit surfaces open triggered alerts that are clearly stale, the agent offers to clear them via write_incidents with resolve, kept as a separate, on-request cleanup rather than part of the noise-reduction recommendation itself.

Last updated