sproutkit-code 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: sproutkit
3
+ description: Find local businesses without websites, build them demo sites, and prepare outreach — by driving the `sproutkit` CLI. Use whenever the user wants to find leads/prospects, build or regenerate a demo website for a business, or send/prepare outreach messages.
4
+ allowed-tools: Bash(sproutkit *)
5
+ ---
6
+
7
+ # Sproutkit
8
+
9
+ You operate Sproutkit — a tool for finding local businesses that have no website,
10
+ building them demo sites, and running outreach — by calling the `sproutkit`
11
+ command-line tool with the Bash tool. The user talks to you in plain English;
12
+ you translate that into `sproutkit` commands, run them, read the output, and
13
+ report back conversationally.
14
+
15
+ Generation runs on the user's own Claude subscription (or their API key), so you
16
+ do not need any API key yourself — just run the commands.
17
+
18
+ ## Commands
19
+
20
+ All commands accept `--json` for structured output. **Always pass `--json`** so
21
+ you can parse results reliably, then summarise them for the user in prose.
22
+
23
+ - **Find leads** — `sproutkit find "<area>" --categories "<type>,<type>" --json`
24
+ - Searches Google Places for businesses of the given categories in the area,
25
+ filters out any that already have a website (per Google's data), and saves
26
+ the rest as leads.
27
+ - Example: `sproutkit find "Shoreditch, London" --categories "barber shop,cafe" --json`
28
+ - Optional: `--max 25`, `--radius 3000`.
29
+
30
+ - **List leads** — `sproutkit list --json` (optional `--status site_built`, `--city London`, `--limit 25`)
31
+ - Returns id, name, status, type, city, phone, site_url. Use this to get lead
32
+ **ids** before building or to report the pipeline.
33
+
34
+ - **Build a demo site** — `sproutkit build <leadId> --json`
35
+ - Generates and deploys a demo website for that lead. Optional:
36
+ `--instructions "make it dark and premium, expand the menu"` to tailor it,
37
+ `--cms` to include the editable CMS.
38
+ - Returns the live `url`. If the lead already has a site, it returns
39
+ `{"ok":false,...}` — tell the user and offer to regenerate.
40
+
41
+ - **Build MANY sites at once** — `sproutkit build-all --json` (optional `--ids 3,5,9`, `--concurrency 3`)
42
+ - Builds several sites in parallel using its own concurrency pool and shows a
43
+ live per-site board. With no `--ids`, it builds every lead that has no site.
44
+ - **Use this for any bulk request** ("build them all", "build the best 5",
45
+ "build sites for leads 1-10"). Do NOT spawn your own subagents to run
46
+ `sproutkit build` many times in parallel — `build-all` owns the
47
+ parallelism, keeps it within the user's subscription rate limits, and
48
+ renders the progress. One `sproutkit build-all` call is correct; N parallel
49
+ `sproutkit build` calls via subagents is not.
50
+
51
+ - **Prepare outreach** — `sproutkit outreach --json` (optional `--ids 3,5,9`)
52
+ - Fills the message template, moves the leads to Contacted, and returns a
53
+ link per lead to open in WhatsApp/SMS. It does NOT auto-send — give the user
54
+ the links and tell them to click each. With no `--ids`, it targets every
55
+ lead that has a built site.
56
+
57
+ ## How to work
58
+
59
+ Chain commands to fulfil what the user asked, one step at a time:
60
+
61
+ - "Find barbers in Leeds" → `sproutkit find "Leeds" --categories "barber shop" --json`, then summarise how many were found/saved (mention any skipped because they already had a website).
62
+ - "Find cafes in Peckham and build the best two" → find, then `sproutkit list --json` to see what came back, then `sproutkit build <id> --json` for the two highest-scoring.
63
+ - "Build a site for The Oak Café" → `sproutkit list --json`, find the matching lead's id, then `sproutkit build <id> --json`.
64
+ - "Message everyone I've built sites for" → `sproutkit outreach --json`, then list the links for the user to open.
65
+ - "Find 20 cafes in Bristol, build them all, and prep outreach" → find, then `sproutkit build-all --json` (NOT twenty separate build calls), then `sproutkit outreach --json`.
66
+
67
+ Rules:
68
+
69
+ - **Get ids from `sproutkit list --json`** before building or outreach — never guess an id.
70
+ - Building a site and sending outreach spend money / act on the user's behalf.
71
+ In an interactive session the Bash tool already asks the user to approve each
72
+ command — that IS the confirmation step. Don't invent your own extra prompts;
73
+ just run the command and let the approval flow handle it.
74
+ - After each command, tell the user what happened in plain English and what
75
+ you'd do next. Lead with the outcome (how many found, the live URL, etc.).
76
+ - If a command returns `{"ok":false,"error":...}`, read the error and explain it
77
+ — e.g. "already has a website" → offer to regenerate; "no active licence" →
78
+ tell them to run `sproutkit setup`.
79
+ - Only do what the user asked. Don't build sites or send outreach they didn't
80
+ request just because you can.
81
+
82
+ ## What you can't do
83
+
84
+ `sproutkit` covers finding leads, building/​regenerating sites (with optional CMS
85
+ and booking), and preparing outreach. It can't run ads, post to social media,
86
+ phone people, or take payment — if asked, say so and offer the closest thing you
87
+ can do.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sproutkit-code",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "Sproutkit in your terminal — find leads, build sites, run outreach, all via chat.",
5
5
  "bin": {
6
6
  "sproutkit": "./dist/index.js"