# Lifesight Anomaly Watch

> Use when the user wants to find what changed, broke, spiked, or dipped in their marketing recently — "what moved last week", "what should I act on", "anything weird in the data", "what's up/down", "what moved more than 2 standard deviations", "surface opportunities", "what needs my attention". Produces a ranked, act-vs-noise triage of anomalies with a recommended action for each. Routed to from the `lifesight` router after the workspace is calibrated.

- Skill: `lifesight/lifesight-anomaly-watch` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lifesight/lifesight-anomaly-watch`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lifesight/lifesight-anomaly-watch/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: lifesight (https://skillmd.com/u/lifesight)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/lifesight/lifesight-anomaly-watch

---


# Lifesight Anomaly Watch

Tell the user what actually moved and what to do about it — separating real,
actionable shifts from noise. **The value is the triage, not the list.** A dump of
every wobble is worse than useless; the job is to say "act on these two, ignore the
rest, here's why."

**Prerequisites (router handles):** workspace calibrated, profile loaded. Operate
under `lifesight-core`; present under `lifesight-rendering`. Load both.

## The core judgment: act vs noise

Every flagged movement gets a tag. A movement is **act**-worthy only if it is BOTH:
- **Statistically real** — beyond normal variance (e.g. >2σ), not a one-day blip.
- **Causally material** — it reflects a real efficiency/outcome shift, not a
  platform-reporting artifact, a known seasonal pattern, or a change the user already
  made (a campaign launch, a budget change). If it's explainable, it's context, not an alarm.

Everything else is **noise** — name it as noise so the user can stop worrying about it.

## Flow

1. **Scope the window and surface.** Default to the period the user names ("last
   week") or the most recent complete week. Don't scan "everything, all time".
2. **One heavy call.** Pull the movement analysis via `ask_mia` (it summarizes). If
   you need a specific metric series, a single scoped `query_ad_data` is fine — never
   a broad dump (`lifesight-core` Rule 3).
3. **Classify and rank.** Tag each anomaly act/noise; rank the act items by causal
   materiality (impact on incremental revenue/efficiency), not by raw % change.

## Judgment checks (mandatory)

- **Significance before size.** A big % swing on a tiny-spend channel rarely matters;
  a small shift on a major channel can. Rank by impact, not drama.
- **Platform vs causal.** A platform-reported ROAS dip may be measurement noise, not a
  real outcome change. Flag which basis the movement is on.
- **Explainable ≠ anomaly.** Seasonality, a known launch, or a deliberate budget
  change is context — present it as the explanation, don't raise it as an alarm.
- **Every "act" needs an action.** Don't just flag — say what to do (cut, scale,
  investigate, run a test), and route to the right next skill.

## Output shape

Lead with the single most material item, then the rest, tight:

> **Act on (2):**
> - **TikTok Prospecting — efficiency down 18% wk/wk (causal).** Past its saturation
>   knee; trim ~15% and watch. → channel-deep-dive
> - **Influencers — incremental revenue +31%.** Real, under-saturated; room to scale.
>
> **Noise / explained (3):** Linear TV dip = known flight gap · Pinterest swing within
> normal variance · Google Branded up = brand campaign you launched Tuesday.

Clean channel names, signed/formatted numbers, causal language throughout.

## Next steps to offer

"Deep-dive the channel that moved" (→ channel-deep-dive) · "Re-optimize given these
shifts" (→ budget-optimization) · "Set this up as a recurring check".

## Red flags — STOP

- Listing every movement without an act/noise tag → triage, don't dump
- Ranking by raw % change instead of causal impact
- Raising a known/seasonal change as an alarm → it's context
- Treating a platform-reported wobble as a real outcome shift → name the basis
- A scan with no recommended action on the "act" items

