Skip to content

Commit cfd8a5c

Browse files
committed
feat(data-warehouse): offer 30 more sources in self-driving onboarding
Add the new self-driving inbox sources to the `self-driving` skill's connected-tools step so `npx @posthog/wizard self-driving` offers them: support desks, issue trackers, error tracking, security scanners, and product feedback/reviews. Extends the step-5 wizard_ask options, the "already connected" warehouse source_type detection, and the responder (source_product/source_type) mapping. Credential sources reuse the existing generic connect-link connector (5c-credentials.md) — no new per-source connector files. Updates the source-list mentions in description.md and 2-read-context.md.
1 parent 058bff1 commit cfd8a5c

3 files changed

Lines changed: 66 additions & 6 deletions

File tree

context/skills/self-driving/description.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Each step file points to the next. Run them in order. **Start by reading `refere
1717
- **Trust the setup report.** `./posthog-setup-report.md` is ground truth for what is instrumented. Scan the codebase only for what the report won't cover.
1818
- **Every write must be idempotent.** List before you create. A duplicate `inbox-source-configs-create` returns 400 — recover by finding the existing row's `id` and calling `inbox-source-configs-partial-update` with `enabled: true`.
1919
- **Never disable a source the user already enabled.** You only switch things on (and tune scouts off); existing enabled rows are someone's deliberate choice.
20-
- **Never enable a connected-tool source the user hasn't confirmed they use.** GitHub Issues, Linear, Zendesk, pganalyze, and Jira are ask-then-connect, never blind.
20+
- **Never enable a connected-tool source the user hasn't confirmed they use.** GitHub Issues, Linear, Jira, and the other issue-tracking, error-tracking, support, security-scanner, and product-feedback tools in step 5 are all ask-then-connect, never blind.
2121
- **Stay off the internal surfaces.** Don't call `signals-scout-emit-signal` or any scratchpad-write tool, and don't change a scout's `emit` flag or `run_interval_minutes` — on configs, this skill only flips `enabled`. **Built-in scout bodies are never edited.** New scout skills are created in exactly one place: step 6b, and only ones the user approved there.
2222
- **Keep the scout troop small.** Every enabled scout is a recurring LLM spend. Step 6 enables only `signals-scout-general` plus the **one or two** specialists for the products this project uses most — never error tracking or session replay (those reach the inbox as native sources) — and step 6b adds **at most two** custom scouts. Everything else stays disabled.
2323
- **Batch your questions.** `wizard_ask` has a small per-run budget; one multi-select beats four yes/nos. Don't skip a step or drop a connector (e.g. Linear) or custom scouts setup to save calls.

context/skills/self-driving/references/2-read-context.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Load the local tools via `ToolSearch select:Read,Glob,Grep`. Reach the PostHog t
3838
- **Logs**: is the PostHog logs product in use (per the profile)?
3939
- **CSP**: is a Content-Security-Policy with PostHog CSP reporting configured?
4040
- **Support**: does the team use PostHog support/conversations (per the profile)?
41-
- **Issue trackers**: any hints of Linear, Zendesk, pganalyze, or Jira (you will still ask in step 5hints only shape the question, they never authorize enabling).
41+
- **Connected tools**: any hints of an issue tracker (Linear, Jira, GitLab, Gitea, Shortcut), error tracker (Sentry, Rollbar, Bugsnag, Honeybadger, Raygun), support desk (Zendesk, Freshdesk, Front, Gorgias, Kustomer, Dixa, Plain), database performance (pganalyze), security scanner (Snyk, SonarQube, Semgrep, Rapid7), or product-feedback / review tool (Featurebase, Frill, Aha, UserVoice, Productboard, Canny, AskNicely, Retently, Appfigures, AppFollow, Judge.me) — you will still ask in step 5; hints only shape the question, they never authorize enabling.
4242

4343
Do NOT crawl the whole source tree. If a question can't be answered cheaply, record "unknown" and move on — unknowns default to asking the user about sources; for scouts, an unconfirmed surface won't rank among the most-used products, so step 6 won't enable its scout.
4444

context/skills/self-driving/references/5-connected-tools.md

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ next_step: 6-scouts.md
44

55
# Step 5 — Connected-tool sources (ask, then connect)
66

7-
External tools can feed the inbox too: GitHub Issues, Linear, Zendesk, pganalyze, and Jira. Each needs a **data warehouse source** before its signal source produces anything — a source row without the warehouse connection is dormant: harmless, but silent until the source syncs. Never enable one the user hasn't confirmed.
7+
External tools can feed the inbox too: issue trackers (GitHub Issues, Linear, Jira, GitLab, Gitea, Shortcut), error tracking (Sentry, Rollbar, Bugsnag, Honeybadger, Raygun), support desks (Zendesk, Freshdesk, Freshservice, Front, Gorgias, Kustomer, Dixa, Plain), database performance (pganalyze), security scanners (Snyk, SonarQube, Semgrep, Rapid7 InsightVM), and product feedback / reviews (Featurebase, Frill, Aha, UserVoice, Productboard, Canny, AskNicely, Retently, Appfigures, AppFollow, Judge.me). Each needs a **data warehouse source** before its signal source produces anything — a source row without the warehouse connection is dormant: harmless, but silent until the source syncs. Never enable one the user hasn't confirmed.
88

99
The run can connect **every** one of them, each with at most one click from the user, and it never asks anyone to paste a credential into this chat:
1010

@@ -39,14 +39,44 @@ Load `wizard_ask` via `ToolSearch select:mcp__wizard-tools__wizard_ask`. Reach `
3939
{ label: "None of these", value: "none" },
4040
{ label: "GitHub Issues", value: "github-issues" },
4141
{ label: "Linear", value: "linear" },
42+
{ label: "Jira", value: "jira" },
43+
{ label: "GitLab", value: "gitlab" },
44+
{ label: "Gitea", value: "gitea" },
45+
{ label: "Shortcut", value: "shortcut" },
46+
{ label: "Sentry", value: "sentry" },
47+
{ label: "Rollbar", value: "rollbar" },
48+
{ label: "Bugsnag", value: "bugsnag" },
49+
{ label: "Honeybadger", value: "honeybadger" },
50+
{ label: "Raygun", value: "raygun" },
4251
{ label: "Zendesk", value: "zendesk" },
52+
{ label: "Freshdesk", value: "freshdesk" },
53+
{ label: "Freshservice", value: "freshservice" },
54+
{ label: "Front", value: "front" },
55+
{ label: "Gorgias", value: "gorgias" },
56+
{ label: "Kustomer", value: "kustomer" },
57+
{ label: "Dixa", value: "dixa" },
58+
{ label: "Plain", value: "plain" },
4359
{ label: "pganalyze", value: "pganalyze" },
44-
{ label: "Jira", value: "jira" }
60+
{ label: "Snyk", value: "snyk" },
61+
{ label: "SonarQube", value: "sonarqube" },
62+
{ label: "Semgrep", value: "semgrep" },
63+
{ label: "Rapid7 InsightVM", value: "rapid7_insightvm" },
64+
{ label: "Featurebase", value: "featurebase" },
65+
{ label: "Frill", value: "frill" },
66+
{ label: "Aha", value: "aha" },
67+
{ label: "UserVoice", value: "uservoice" },
68+
{ label: "Productboard", value: "productboard" },
69+
{ label: "Canny", value: "canny" },
70+
{ label: "AskNicely", value: "asknicely" },
71+
{ label: "Retently", value: "retently" },
72+
{ label: "Appfigures", value: "appfigures" },
73+
{ label: "AppFollow", value: "appfollow" },
74+
{ label: "Judge.me", value: "judgeme_reviews" }
4575
]
4676
}
4777
```
4878

49-
2. Call `external-data-sources-list` once (step 2's project profile also lists warehouse sources when it exists). For each picked tool whose source already exists (`source_type` `Github` / `Linear` / `Zendesk` / `PgAnalyze` / `Jira`): record "already connected" — no connector flow needed, just enable its responder row (step 4 below).
79+
2. Call `external-data-sources-list` once (step 2's project profile also lists warehouse sources when it exists). For each picked tool whose source already exists, match its warehouse `source_type`: `Github` / `Linear` / `Jira` / `GitLab` / `Gitea` / `Shortcut` / `Sentry` / `Rollbar` / `Bugsnag` / `Honeybadger` / `Raygun` / `Zendesk` / `Freshdesk` / `Freshservice` / `Front` / `Gorgias` / `Kustomer` / `Dixa` / `Plain` / `PgAnalyze` / `Snyk` / `Sonarqube` / `Semgrep` / `Rapid7Insightvm` / `Featurebase` / `Frill` / `Aha` / `Uservoice` / `Productboard` / `Canny` / `Asknicely` / `Retently` / `Appfigures` / `Appfollow` / `JudgeMeReviews`. Record "already connected" — no connector flow needed, just enable its responder row (step 4 below).
5080

5181
3. Dispatch each picked tool that's still missing:
5282

@@ -58,9 +88,39 @@ Load `wizard_ask` via `ToolSearch select:mcp__wizard-tools__wizard_ask`. Reach `
5888

5989
- GitHub Issues → `github` / `issue`
6090
- Linear → `linear` / `issue`
91+
- Jira → `jira` / `issue`
92+
- GitLab → `gitlab` / `issue`
93+
- Gitea → `gitea` / `issue`
94+
- Shortcut → `shortcut` / `issue`
95+
- Sentry → `sentry` / `issue`
96+
- Rollbar → `rollbar` / `issue`
97+
- Bugsnag → `bugsnag` / `issue`
98+
- Honeybadger → `honeybadger` / `issue`
99+
- Raygun → `raygun` / `issue`
61100
- Zendesk → `zendesk` / `ticket`
101+
- Freshdesk → `freshdesk` / `ticket`
102+
- Freshservice → `freshservice` / `ticket`
103+
- Front → `front` / `ticket`
104+
- Gorgias → `gorgias` / `ticket`
105+
- Kustomer → `kustomer` / `ticket`
106+
- Dixa → `dixa` / `ticket`
107+
- Plain → `plain` / `ticket`
62108
- pganalyze → `pganalyze` / `issue`
63-
- Jira → `jira` / `issue`
109+
- Snyk → `snyk` / `scanner_finding`
110+
- SonarQube → `sonarqube` / `scanner_finding`
111+
- Semgrep → `semgrep` / `scanner_finding`
112+
- Rapid7 InsightVM → `rapid7_insightvm` / `scanner_finding`
113+
- Featurebase → `featurebase` / `feedback`
114+
- Frill → `frill` / `feedback`
115+
- Aha → `aha` / `feedback`
116+
- UserVoice → `uservoice` / `feedback`
117+
- Productboard → `productboard` / `feedback`
118+
- Canny → `canny` / `feedback`
119+
- AskNicely → `asknicely` / `feedback`
120+
- Retently → `retently` / `feedback`
121+
- Appfigures → `appfigures` / `review`
122+
- AppFollow → `appfollow` / `review`
123+
- Judge.me → `judgeme_reviews` / `review`
64124

65125
5. Record each picked tool's final class honestly — the report consumes these verbatim:
66126

0 commit comments

Comments
 (0)