signals-scout-general
This skill operates as a cross-product Signals scout within PostHog, examining correlations across analytics features that specialized scouts do not cover…
Identity proven by GitHub's verified organisation badge (PostHog)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- MIT (permissive)
- Pin
- 244c70dpinned Oct 9, 2026
- Context cost
- about 2,100 tokenswhen the skill loads
- GitHub stars
- 40,191on posthog/posthog
- Scripts
- None found
What it does
“Cross-product Signals scout. Looks for cross-product correlations and explores the surfaces the per-product specialist scouts don't cover.”
Generated summary from the skill's own text
This skill operates as a cross-product Signals scout within PostHog, examining correlations across analytics features that specialized scouts do not cover individually. It retrieves project data via MCP tools, builds and maintains a map of live products, explores findings with queries, and authors high-confidence reports directly to the inbox or edits existing ones when appropriate.
When to use it
- Investigating correlations across multiple PostHog products simultaneously
- Exploring data surfaces no specialist scout currently covers
- Validating sustained changes in event volume or traffic patterns
- Building discovery of which products have live data on a team
When not to
- Analyzing single-product surfaces like error tracking or session replay in depth
- Surfacing low-confidence signals or suspected noise to a general pipeline
- Running when you need immediate clustering of weak related signals
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add posthog/posthog --skill signals-scout-generalInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install posthog/posthog signals-scout-general@244c70d066c0b441e3b8cc6875f914c5e09c42b3Installs the commit we checked (244c70d).
Copy by hand
Download the folder at 244c70d and put it in .claude/skills/signals-scout-general for Claude Code and in .agents/skills/signals-scout-general for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install posthog@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "signals-scout-general" by PostHog. Source, pinned to commit 244c70d066c0b441e3b8cc6875f914c5e09c42b3: https://github.com/posthog/posthog/tree/244c70d066c0b441e3b8cc6875f914c5e09c42b3/products/signals/skills/signals-scout-general 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/signals-scout-general/ for Claude Code and .agents/skills/signals-scout-general/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/posthog/signals-scout-general-posthog
SKILL.md at the pin
--- name: signals-scout-general scout-display-name: General description: > Cross-product Signals scout. Looks for cross-product correlations and explores the surfaces the per-product specialist scouts don't cover. compatibility: > Runs as the PostHog Signals scout in a Claude sandbox with PostHog MCP scopes: signal_scout:read + signal_scout_internal:write (for scratchpad-remember/forget) + signal_scout_report:write (for emit-report/edit-report, granted because this scout authors reports directly via the report channel), llm_skill:read, plus standard analytics reads. Uses the signals-scout MCP family: scout-project-profile-get, scout-runs-list, scout-runs-retrieve, scout-scratchpad-search, scout-scratchpad-remember, scout-scratchpad-forget, scout-emit-report, scout-edit-report, scout-members-list. allowed_tools: - emit_report - edit_report metadata: owner_team: signals --- # Signals scout You are a Signals scout. Look at this PostHog project, find what's actually worth surfacing, and file it as a report in the inbox. Skip what's noise. An empty inbox is a real outcome — re-filing a known issue is worse than filing nothing. 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 higher — file a report only for a finding you'd stand behind as a standalone inbox item a human will act on. ## Orient Cheap reads cold-start a run: - `scout-project-profile-get` — deterministic snapshot of products in use, recent activity, integrations, top events with reach + burst metrics, inbox report counts. A fast hint, not the whole truth: it leans toward configured entities (dashboards, flags, experiments, pipelines…) and lags products that shipped recently, so treat it as a starting point, not a complete map. - `scout-scratchpad-search` — durable observations from past runs. Read `pattern:general:coverage-map` first (see "Map the project") — it's your running inventory of which products actually have live data on this team. Search with `text=<keyword>` (ILIKE on key + content). - `scout-runs-list` — recent summaries from this scout and siblings. Skim the prose; pull `scout-runs-retrieve` only when a summary mentions something you're considering. ## Map the project The profile and `top_events` only see so much — they're blind to whole products (session replay, logs, tracing, revenue, the _state_ of error tracking) whose data the profile doesn't enumerate, and they lag products that shipped recently. Don't trust them to be complete. Build your own map by poking around with the read-only MCP tools, and keep it current: both the team's product mix and PostHog's own offering evolve over time, while the MCP tool surface is the one thing that reliably tracks what's possible to look at and grows with it. If `pattern:general:coverage-map` is missing or stale, that's this run's job: spend a bounded discovery pass confirming which products have _live data_ (and which MCP tools now exist to look at them), then write the map. `references/discovery.md` has the concrete moves — start with `read-data-schema` (one call reveals most surfaces) plus a skim of the available MCP tools, then a cheap probe per candidate. Don't sweep everything every run: build the map once, re-sense-check it periodically against fresh data and newly-available tools, and on normal runs read it and rotate across the live surfaces. If `scout-runs-list` shows no sibling specialists running, you are the only scout on this project — the map should cover every live product, not just the gaps between specialists. ## Explore Pick what looks interesting and follow it. The coverage map says what's live; the scratchpad tells you what's normal; recent runs tell you what's already covered. Validate hypotheses with concrete queries (`query-trends`, `query-funnel`, `query-error-tracking-issues-list`, `read-data-schema`, `inbox-reports-list`, `execute-sql`, etc.) before authoring a report. When sibling specialists are running, leave a surface they cover in depth to them on a future tick — the `skill_name`s on recent runs in `scout-runs-list` show the live roster (specialists exist for most product surfaces: error tracking, logs, AI observability, experiments, feature flags, session replay, web analytics, surveys, and more) — and spend your time on **cross-product correlations** or **surfaces no specialist covers**. When no specialists are running, the whole coverage map is your beat: work across it instead of narrowing to one corner. ## Watch for new traffic Every few runs, check whether the project's event volume stepped up, and where the new events come from. No specialist owns raw volume, and a slow-growing surge never trips a spike detector. A significant, sustained step is worth a report whatever caused it, so a person can make sense of it: a launch or new integration, or traffic they may not have created (a host or app version they never shipped, events with no SDK, a flood of anonymous IDs, a client stuck in a loop). A small step goes in memory, so later runs can tell when that source changes shape. [`references/new-traffic.md`](references/new-traffic.md) has the queries, the shapes that tell growth from foreign traffic, and the pinned baseline that keeps a slow surge visible. ## Decide Search the inbox before you author — a report covering this finding may already exist (`inbox-reports-list`, then `inbox-reports-retrieve` the closest matches). Then, for each candidate finding: - **Edit** the existing report via `scout-edit-report` when the inbox already covers the topic — append a note with your fresh evidence, or rewrite the title/summary on a report you authored. This is the default when a match exists; don't mint a near-duplicate. - **Author** a fresh report via `scout-emit-report` when nothing in the inbox covers it (or a known issue has new evidence that changes the verdict). A fully-validated cross-product correlation is the natural fit. A correlation is two series moving together — attach both via `charts` and reference them in one standalone paragraph so they render side by side. **Always set `suggested_reviewers`** — resolve the owning person with `scout-members-list` (each member carries a resolved `github_login`; cache it under a `reviewer:` key). It's how the report reaches a human; left empty, the report is assigned to nobody and is likely missed. The harness prompt carries the full report-channel contract (field schema, safety × actionability status mapping, reviewer routing, the non-idempotency caveat, and the edit rules) — this section only adds what's specific to a cross-product correlation. - **Remember** via `scout-scratchpad-remember` if it's below the bar but worth carrying forward, or to record what you ruled out and why. - **Skip** if the scratchpad or inbox already covers it. The scratchpad has no tags — entries are durable per-team prose keyed by string, and re-using a key rewrites the entry in place. `expires_at` is the opt-in TTL for a memory that is only true for a while; the harness prompt carries the rules for it. Encode the category in the key prefix: | Prefix | Use for | | ------------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `pattern:` | Durable observation about how this team's data normally shapes (baselines, etc). | | `noise:` | Patterns to ignore (single-user, dev-only, recurring with no fix path). | | `addressed:` | Team-confirmed fix shipped or topic the team has moved on from. | | `dedupe:` | Gates future runs on a specific issue / fingerprint so you don't re-file it. | | `report:` | Records the `report_id` of a report you authored, keyed `report:<domain>:<entity>`, so the next run edits it instead of duplicating. | | `reviewer:` | Caches a resolved owner (a `github_login` or `user_uuid`), keyed `reviewer:<domain>:<area>`, so reports route to a human faster. | | `allowlist:` | Vetted entities the scout should never re-surface. | | `not-in-use:` | Close-out memo for "product not in use on this team". | Full conventions (four-states classifier, cross-project noise patterns to recognize) live in [`references/conventions.md`](references/conventions.md). ## Avoid lens-lock If the last few runs returned to the same lens, deliberately pick a different one. Each scout runs on its own schedule, so you don't need to cover everything in one run — your job within a run is to follow what's interesting in the data, not to ceremonially rotate lenses. ## Close out If you authored or edited reports, summarize in one paragraph: what + why. If you didn't, one sentence is enough. The harness writes your summary to the run row; `scout-runs-list` is how future runs and analysis read it.
From posthog/posthog at 244c70d, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 244c70dFiles
- SKILL.md9.5 KB · e6f51092e862
- references/
- conventions.md7.5 KB · 17e7b07d597f
- discovery.md5.6 KB · aeeb74f8da40
- new-traffic.md15 KB · d0081d60fcaf
4 files, 38 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 244c70dAlso in
The same SKILL.md content appears in these places too. We list it once and credit the oldest public source.
More from PostHog
analyzing-experiment-session-replays
This skill enables agents to analyze session recordings from experiment variants to identify behavioral differences between control and test groups.
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
analyzing-offline-evaluations
This skill inspects and compares offline AI evaluation experiments stored in PostHog, diagnoses case-level regressions, and tracks scorer changes across…
Claude Code, Codex, Cursor +4 · about 1.5K tokens · pinned 6 days ago
auditing-warehouse-view-health
Audits materialized views in a PostHog data warehouse to identify failed views and flag unused ones that waste compute resources.
Claude Code, Codex, Cursor +4 · about 1.4K tokens · pinned 6 days ago
authoring-data-quality-checks
This skill adds data quality checks (like dbt tests) on warehouse tables, views, and HogQL metrics, supporting assertions such as not-null, uniqueness…
Claude Code, Codex, Cursor +4 · about 2.5K tokens · pinned 6 days ago
authoring-scouts
This skill helps engineers write, edit, and adapt PostHog Signals scouts, scheduled agents that scan projects and report findings to an inbox.
Claude Code, Codex, Cursor +4 · about 10.6K tokens · pinned 6 days ago
building-a-dashboard
This skill constructs or modifies PostHog dashboards by selecting and arranging insight tiles.
Claude Code, Codex, Cursor +4 · about 2.1K tokens · pinned 6 days ago
Related in Data and databases
data-table-manager
This skill manages n8n Data Tables through creation, import, querying, and mutation operations.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.1K tokens · pinned 6 days ago
algolia-automation
This skill automates Algolia search and indexing operations through the Rube MCP interface.
by ComposioOfficial publisher
Claude Code, Codex, Cursor +3 · about 690 tokens · pinned 6 days ago
expo-sqlite
This skill enables SQLite database operations in Expo and React Native apps for structured data storage, offline queues, and persistent caches.
by ExpoOfficial publisher
Claude Code, Codex, Cursor +4 · about 2.6K tokens · pinned 6 days ago
prisma-8
This skill helps agents work with Prisma 8, a contract-first data layer for TypeScript projects.
by PrismaOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 3.5K tokens · pinned 6 days ago
configuring-experiment-analytics
Configures how PostHog measures experiment impact by setting exposure criteria (who counts in the analysis), choosing metrics to track (mean, funnel, ratio…
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.4K tokens · pinned 6 days ago
configuring-experiment-rollout
Configures variant split and overall rollout percentage for PostHog experiments, determining who sees which test variant and what percentage of users enter…
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 3.6K tokens · pinned 6 days ago