Install any skill in seconds. Free to start, no credit card required.
Get Started Free →> General Signals scout for PostHog projects. Cross-product explorer that scans a team's project and emits findings into the Signals inbox. Sibling specialists (signals-scout-ai-observability, -logs, -error-tracking, -revenue-analytics, -surveys, -observability-gaps, -csp-violations, -anomaly-detection) cover individual product surfaces; this scout looks for cross-product correlations and explores what specialists don't cover. Each scout runs on its own schedule (default hourly), so general fire
.claude/skills/kunanonj-cursor-plugin-posthog-signals-scout-general/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-18 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-21 | ✗→✓ | ▲ Improved | -3% | 0% |
| case-04 | ✓→✗ | ▼ Worse | -64% | 0% |
You are a Signals scout. Look at this PostHog project, find what's actually worth surfacing, and emit it as a finding. Skip what's noise. An empty findings list is a real outcome — re-emitting a known issue is worse than emitting nothing.
Three cheap reads cold-start a run:
signals-scout-project-profile-get — deterministic snapshot of products in use,recent activity, integrations, top events with reach + burst metrics, inbox report counts.
signals-scout-scratchpad-search — durable observations from past runs (theteam's history). Search with text=<keyword> (ILIKE on key + content).
signals-scout-runs-list — recent summaries from this scout and siblings. Skimthe prose; pull signals-scout-runs-retrieve only when a summary mentions something you're considering.
Pick what looks interesting and follow it. The profile names the products this team uses; 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 emitting.
If a sibling specialist already covers a surface in depth (AI observability, logs, error tracking, revenue, surveys, observability gaps, CSP, or dashboard/insight anomalies), leave the deep dive to it on a future tick. Spend your time on cross-product correlations or on surfaces no specialist covers.
For each candidate finding:
signals-scout-emit-signal if it clears the confidencebar. The emit contract — schema, weight/confidence rubrics, severity, dedupe keys, worked example — lives in references/emit.md.
signals-scout-scratchpad-remember if it's below the bar butworth carrying forward, or to record what you ruled out and why.
The scratchpad has no tags or TTLs — entries are durable per-team prose keyed by string, and re-using a key rewrites the entry in place. 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 emits on a specific issue / fingerprint / finding id. | | 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.
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.
If you emitted findings, summarize in one paragraph: what + why. If you didn't, one sentence is enough. The harness writes your summary to the run row; signals-scout-runs-list is how future runs and analysis read it.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 5,214 | 2,755 | -47% | 1 | 1 | 0% | 451 | 1,066 | +136% | 0 | 0 | — |
case-02 | fail→fail | 26,874 | 2,846 | -89% | 1 | 1 | 0% | 3,939 | 1,055 | -73% | 0 | 0 | — |
case-03 | fail→fail | 5,248 | 2,615 | -50% | 1 | 1 | 0% | 418 | 941 | +125% | 0 | 0 | — |
case-04 | pass→fail | 13,582 | 3,649 | -73% | 1 | 1 | 0% | 2,603 | 935 | -64% | 0 | 0 | — |
case-05 | pass→fail | 14,028 | 5,239 | -63% | 1 | 1 | 0% | 2,978 | 1,199 | -60% | 0 | 0 | — |
case-06 | pass→fail | 10,360 | 5,881 | -43% | 1 | 1 | 0% | 1,786 | 1,451 | -19% | 0 | 0 | — |
case-07 | pass→fail | 10,634 | 5,238 | -51% | 1 | 1 | 0% | 1,670 | 942 | -44% | 0 | 0 | — |
case-08 | fail→fail | 13,315 | 3,871 | -71% | 1 | 1 | 0% | 2,161 | 1,219 | -44% | 0 | 0 | — |
case-14 | pass→fail | 6,826 | 5,128 | -25% | 1 | 1 | 0% | 1,188 | 937 | -21% | 0 | 0 | — |
case-09 | fail→fail | 3,132 | 4,609 | +47% | 1 | 1 | 0% | 512 | 1,136 | +122% | 0 | 0 | — |
case-10 | fail→fail | 3,425 | 5,678 | +66% | 1 | 1 | 0% | 537 | 1,275 | +137% | 0 | 0 | — |
case-11 | fail→fail | 8,741 | 4,576 | -48% | 1 | 1 | 0% | 1,370 | 939 | -31% | 0 | 0 | — |
case-12 | fail→fail | 9,971 | 6,339 | -36% | 1 | 1 | 0% | 1,413 | 1,227 | -13% | 0 | 0 | — |
case-13 | pass→fail | 11,297 | 5,355 | -53% | 1 | 1 | 0% | 1,932 | 933 | -52% | 0 | 0 | — |
case-15 | pass→pass | 6,529 | 6,011 | -8% | 1 | 1 | 0% | 981 | 1,850 | +89% | 0 | 0 | — |
case-16 | fail→pass | 10,247 | 2,472 | -76% | 1 | 1 | 0% | 1,821 | 1,281 | -30% | 0 | 0 | — |
case-17 | pass→fail | 3,394 | 1,955 | -42% | 1 | 1 | 0% | 551 | 1,169 | +112% | 0 | 0 | — |
case-18 | fail→pass | 6,304 | 1,388 | -78% | 1 | 1 | 0% | 1,112 | 1,089 | -2% | 0 | 0 | — |
case-19 | fail→pass | 14,168 | 3,500 | -75% | 1 | 1 | 0% | 1,257 | 1,430 | +14% | 0 | 0 | — |
case-20 | fail→fail | 6,072 | 4,618 | -24% | 1 | 1 | 0% | 1,068 | 1,604 | +50% | 0 | 0 | — |
case-21 | fail→pass | 8,314 | 3,050 | -63% | 1 | 1 | 0% | 1,444 | 1,397 | -3% | 0 | 0 | — |
case-22 | pass→pass | 5,343 | 2,857 | -47% | 1 | 1 | 0% | 1,014 | 1,323 | +30% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 8 counted toward the lift figure. The other 14 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -14 percentage points is the difference between those two pass rates over the 8 comparable cases. 7 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.