signals-scout-health-checks
Focused Signals scout for PostHog setup health. Reads the project's active health issues — the deterministic findings of PostHog's own health checks (no live events, outdated SDKs, missing reverse proxy, absent web vitals, ingestion warnings, failing data-warehouse models, and more) — and decides which are genuinely worth surfacing. Unlike a one-signal-per-issue push, it bundles kind-clusters into a single finding, weights by real blast radius (cross-referencing actual event volume and reach), and prioritizes issues an agent can resolve via the MCP. Emits only above the confidence bar; otherwise writes durable memory and closes out empty. Self-contained peer in the signals-scout-* fleet — picked uniformly at random by the coordinator alongside `signals-scout-general` and other specialists.
What this skill does
# 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 emit a small
number of well-framed findings. 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 — re-emitting one signal per issue is exactly the
noise this scout exists to avoid.
**Calibration (dogfooded on a real high-volume project).** A live project with ~180 active
issues collapsed to ~4 findings under this logic. Most of a ~95-issue `external_data_failure`
set reduced to a few shared causes — one invalidated replication slot behind many syncs, a
date-partitioned source regenerating the same "table not found" failure daily — and much of an
~80-issue `materialized_view_failure` set was 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.
## 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
- `signals-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. Honor them before drilling.
- `signals-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.
### 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 — emit at most one rolled-up hygiene finding. |
| 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 exhaustive** — the live `health-issues-summary` is the source of truth for
which kinds are actually firing, and new check kinds appear over time without this list being
updated. Treat an unfamiliar kind on its own terms (read the payload + `remediation`) rather
than assuming it's absent because it isn't here.
| Kind | Typical severity | What it means / how to weight |
| --------------------------- | ---------------- | ----------------------------------------------------------------------- |
| `no_live_events` | critical | No `$pageview`/`$screen` recently — capture is broken. Highest weight. |
| `sdk_outdated` | warning/critical | SDK(s) behind latest. Weight by traffic share still on the old version. |
| `ingestion_warning` | warning/critical | Ingestion dropping/mangling events. Weight by affected event volume. |
| `materialized_view_failure` | warning | DW model(s) failing to build. Bundle; weight by how many + downstream. |
| `external_data_failure` | warning | DW source sync failing — needs re-auth. Usually a disqualifier. |
| `web_vitals` | warning | Has pageviews, no web vitals. Only matters with real pageview volume. |
| `reverse_proxy` | warning | No proxy — ad-blocker loss. Weight by traffic scale. |
| `partial_proxy` | warning | Proxy on some hosts only — partial blind spot. |
| `no_pageleave_events` | warning | Pageviews but no `$pageleave` — bounce/session metrics degraded. |
| `scroll_depth` | warning | Pageleave present, scroll depth off — minor coverage gap. |
| `authorized_urls` | warning | No authorized URLs — toolbar/filters degraded. Config-only fix. |
### Explore — patterns to watch (starting points, not a checklist)
> Pin `status=active` and `dismissed=false` on **every** `health-issues-list` call. The
> endpoint does **not** default-exclude resolved or dismissed issues — without the filters you
> fetch stale and human-dismissed rows, waste `health-issues-get` budget on them, and risk
> resurfacing what someone already closed. (`health-issues-summary` already counts only active,
> non-dismissed, so the orient read is fine as-is.)
#### 1. Critical first
`health-issues-list` (`status=active`, `severity=critical`, `dismissed=false`). For each, `health-issues-get`
to read the `payload` and the trusted `remediation` (`human` + `agent`). A `no_live_events`
critical is the strongest single finding this scout produces — confirm with
`query-trends`/`execute-sql` that `$pageview`/`$screen` volume actually collapsed (not just
a quiet weekend), then emit with the remediation summarized in the description.
#### 2. Kind clusters → one bundled finding
When `by_kind` shows a kind with many active issues (e.g. dozens of
`materialized_view_failure`), list a sample (`health-issues-list kind=<kind> status=active dismissed=false`), read one or
two with `health-issues-get`, and emit **a single finding** describing the cluster: how many,
which models/entities (cite a few ids from payloads), the shared remediation, and the
downstream impact. One dedupe key on the kind, plus per-issue keys for the named entities.
Never emit one signal per issue in a cluster.
**Bundle by root cause, not just kind.** Many kinds carry a sub-type discriminator in the
`payload` — `ingestion_warning` has `warning_type`, `external_data_failure` has `source_type`
plus a shared `error`. When a kind's issues split into distinct root causes with distinct
remediations, bundle by root cause, not by the kind as a whole: a `client_ingestion_warning`
cluster and a `cannot_merge_already_identified` cluster are two findings, not one, because
the fixes differ. Conversely, when many issues share _one_ upstream cause — e.g. a single
invalidated Postgres replication slot failing dozens of `external_data_failure` syncs at
once — collapse theRelated in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.