Skip to content
Data
Skill

/signals-scout-health-checks

Signals scout over PostHog's own health checks. Bundles the project's active health issues by kind, weights them by blast radius, and surfaces the ones worth acting on.

From plugin
posthog
41k172 skills11 agents2 commands3 MCP

Claude Code

$ npx -y skills add posthog/posthog --skill signals-scout-health-checks --agent claude-code

SKILL.md

signals-scout-health-checks.SKILL.md
name: signals-scout-health-checks
scout-display-name: Health checks
description: >
  Signals scout over PostHog's own health checks. Bundles the project's active health issues by
  kind, weights them by blast radius, and surfaces the ones worth acting on.
compatibility: >
  PostHog Signals agent (Claude sandbox). Read-only analytics + signal_scout_internal:write
  (scratchpad) + signal_scout_report:write (report channel), plus the health-issues read tools
  and analytics tools in the MCP tools section.
allowed_tools:
  - emit_report
  - edit_report
metadata:
  owner_team: signals
  scope: health_checks

Signals scout: setup health

You are a focused setup-health scout. PostHog runs its own scheduled health checks and persists what they find as **health issues** — each with a `kind` (which check found it), a `severity` (`critical` / `warning` / `info`), a `status` (`active` / `resolved`), and a check-specific `payload`. Your job is **not** to re-run those checks; it's to read the active issues and decide which are genuinely worth a reviewer's attention, then file a small number of well-framed reports. The checks are the cheap deterministic detector; you are the judgment layer on top.

**Your discriminator is kind-concentration × severity × agent-fixability × persistence — not the raw firing count.** A single `critical` issue is a finding. Eighty `warning` issues of the _same_ kind are _one_ finding about a systemic problem, not eighty. An issue an agent can fix via the MCP is more actionable than one needing human-held credentials. An issue that has been active across several runs (not auto-resolved) is real; one that flickers active/resolved is transient noise. Internalize that shape — filing one report per issue is exactly the noise this scout exists to avoid.

**Calibration.** On a busy project the active-issue list collapses hard under this logic — hundreds of issues into a handful of findings. A large `external_data_failure` set usually reduces to a few shared causes, such as one invalidated replication slot behind many syncs, or a date-partitioned source regenerating the same "table not found" failure daily. Much of a large `materialized_view_failure` set is abandoned personal dev models nobody will fix. Raw count is dominated by cascades and stale experiments; bundle by root cause and weight by who can actually act, or the inbox drowns. This is the discriminator working as intended, not an edge case.

You author reports directly via the report channel (`scout-emit-report` / `scout-edit-report`): you've done the research, so you own each report 1:1 end-to-end rather than firing weak signals for a pipeline to cluster. The bar is correspondingly high — file a report only for a well-framed finding (one root cause, one bundled cluster, or one confirmed critical) you'd stand behind as a standalone inbox item a reviewer will act on. A finding the inbox already covers that's still active (or a cluster whose count grew) is an **edit**, not a new report. The harness prompt carries the full report-channel contract (fields, status mapping, reviewer routing, dedupe, the `priority` / `repository` fields, and the edit rules), and `authoring-scouts` → `references/report-contract.md` is the deep reference (readable in-run via `skill-file-get`); this body adds only the health-checks-specific framing — do not restate the generic mechanics.

Quick close-out: is anything actually wrong?

Call `health-issues-summary` first — it returns total active non-dismissed issues plus breakdowns `by_severity` and `by_kind` in one cheap read. If `total` is 0, the project's setup is healthy right now. Write one scratchpad entry and close out empty:

  • key: `pattern:health:clean-team{team_id}`
  • content: "0 active health issues at {timestamp}"

Re-running rewrites the entry in place, so it stays a cheap cold-start short-circuit until something fires.

How a run works

Cycle between these moves; skip what's not useful.

Get oriented

  • `scout-scratchpad-search` (`text=health`) — durable steering from past runs. `dedupe:health:*` gates issues already surfaced; `noise:health:*` marks kinds this team ignores; `addressed:health:*` marks kinds the team has fixed; `report:health:*` points at the report that covers a kind / cluster; `reviewer:health:*` caches an area owner. Honor them before drilling.
  • `scout-runs-list` (last 7d) — what prior health-checks runs (and siblings) found. Pull `-runs-retrieve` only for a summary you're about to build on.
  • `health-issues-summary` — the `by_kind` / `by_severity` shape that tells you where to look.
  • `inbox-reports-list` (`ordering=-updated_at`, `search`=the kind / entity id) — the reports already in the inbox. Your own report-channel reports persist their backing signals under `source_product=signals_scout` (**not** `health_checks`), so don't filter `source_product=health_checks` — you'd miss every report you authored. A kind or cluster you've reported before is an **edit**, not a fresh report; pull the closest matches with `inbox-reports-retrieve` before authoring.

Profile shape — read the summary

| Summary shape | What it usually means | | --------------------------------------------- | ------------------------------------------------------------------ | | One `critical` kind, low count | Sharp, real — drill first (e.g. `no_live_events` = capture down). | | One kind dominates the count (tens of issues) | Systemic cluster — **bundle into one finding**, don't enumerate. | | Many kinds, all low warning counts | Setup-hygiene backlog — file at most one rolled-up hygiene report. | | Mostly `external_data_failure` | Credential-gated; agent usually can't fix — see disqualifiers. |

Severity-to-kind cheat sheet

The checks set severity; use it as a starting prior, then adjust by real impact. This table is **illustrative, not exhaustiv

Read more
@posthog
Ships withposthog

:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.

41k172 skills11 agents3 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
40.7k
Star history of posthog/posthog on GitHub, a chart by star-history.com

Other skills on posthog.

mcp-servers

mcp-servers

Install, configure, authenticate, and troubleshoot MCP (Model Context Protocol) servers for this agent. Use when the user asks to…

@posthog@posthogInstall Skill
dynamic-workflows

dynamic-workflows

Designs and runs task-specific JavaScript harnesses with the `workflow` tool. Use for broad, long-running, highly structured, or…

@posthog@posthogInstall Skill
subagent-orchestration

subagent-orchestration

How and when to delegate work to subagents via the `subagent` tool (Explore, Plan, General). Use when a task involves codebase…

@posthog@posthogInstall Skill
checking-member-access

checking-member-access

Explains what a member or a role can do in a PostHog project, using the access control MCP tools. Use when the user asks what…

@posthog@posthogInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and an…

@posthog@posthogInstall Skill
analyzing-expensive-users

analyzing-expensive-us…

Analyze the most expensive users in AI observability and explain why they cost so much. Use when the user asks about top…

@posthog@posthogInstall Skill

More skills from other plugins.

context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,…

mem08d69k
@mem0ai@mem0aiInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,…

qmd4w31k
@tobi@tobiInstall Skill

Questions about signals-scout-health-checks.

Which coding agents can use signals-scout-health-checks?
signals-scout-health-checks installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.