gooseworks 0.3.15 → 0.4.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.
- package/README.md +58 -8
- package/dist/agents/claude.js +1 -1
- package/dist/agents/claude.js.map +1 -1
- package/dist/agents/codex.js +1 -1
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/skill-links.d.ts +7 -2
- package/dist/agents/skill-links.d.ts.map +1 -1
- package/dist/agents/skill-links.js +10 -5
- package/dist/agents/skill-links.js.map +1 -1
- package/dist/auth/attribution.d.ts +14 -0
- package/dist/auth/attribution.d.ts.map +1 -0
- package/dist/auth/attribution.js +37 -0
- package/dist/auth/attribution.js.map +1 -0
- package/dist/auth/oauth-server.d.ts +4 -4
- package/dist/auth/oauth-server.d.ts.map +1 -1
- package/dist/auth/oauth-server.js +8 -8
- package/dist/auth/oauth-server.js.map +1 -1
- package/dist/commands/call.d.ts.map +1 -1
- package/dist/commands/call.js +6 -5
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +11 -7
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +13 -27
- package/dist/commands/login.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/skills/installer.d.ts +9 -0
- package/dist/skills/installer.d.ts.map +1 -1
- package/dist/skills/installer.js +20 -6
- package/dist/skills/installer.js.map +1 -1
- package/dist/skills/master-skill.d.ts +24 -22
- package/dist/skills/master-skill.d.ts.map +1 -1
- package/dist/skills/master-skill.js +392 -149
- package/dist/skills/master-skill.js.map +1 -1
- package/dist/skills/names.d.ts +53 -1
- package/dist/skills/names.d.ts.map +1 -1
- package/dist/skills/names.js +107 -7
- package/dist/skills/names.js.map +1 -1
- package/dist/skills/routes.d.ts +68 -0
- package/dist/skills/routes.d.ts.map +1 -0
- package/dist/skills/routes.js +124 -0
- package/dist/skills/routes.js.map +1 -0
- package/package.json +1 -1
- package/skills/goose-ads/SKILL.md +124 -104
- package/skills/goose-product-photos/SKILL.md +129 -0
- package/skills/gooseworks/SKILL.md +100 -41
- package/skills/routes.json +157 -0
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
name: gooseworks
|
|
3
3
|
slug: gooseworks
|
|
4
4
|
description: >
|
|
5
|
-
GooseWorks
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Reach for it when you need data at scale, sources behind auth, or a specific provider — not as
|
|
10
|
-
a replacement for your built-in web search/fetch on quick, one-off lookups.
|
|
5
|
+
GooseWorks growth coworker and specialist-skill router. Research brands, customers, competitors,
|
|
6
|
+
creators, markets, and prospects; analyze ads and performance; create ads, product photos,
|
|
7
|
+
graphics, and video; search and scrape public web and social data; find and enrich leads.
|
|
8
|
+
Use it as the single GooseWorks entry point for brand growth, B2B, sales, research, and GTM work.
|
|
11
9
|
category: general
|
|
12
10
|
version: 1.0.0
|
|
13
11
|
author: GooseWorks
|
|
@@ -16,79 +14,137 @@ tags: [gooseworks, data, scraping, search, reddit, twitter, linkedin, email, peo
|
|
|
16
14
|
|
|
17
15
|
# GooseWorks
|
|
18
16
|
|
|
19
|
-
You have access to GooseWorks —
|
|
17
|
+
You have access to GooseWorks — an AI coworker with specialist skills for research, analysis, creative work, lead generation, enrichment, and public web/social data. Use the right specialist when the request needs brand context, a managed creative workflow, data at scale, a source behind authentication, or a specific provider.
|
|
20
18
|
|
|
21
19
|
This skill is also the **parent router** for the GooseWorks family. Data/GTM work you handle here (see "How to Use"); specialized work you hand off to a dedicated `goose-*` skill.
|
|
22
20
|
|
|
23
21
|
## Route to the right skill FIRST
|
|
24
22
|
|
|
25
|
-
|
|
23
|
+
First apply the **Common company onboarding** gate below. Preserve the user's original request while onboarding, then continue with it as soon as onboarding is complete. Then load the brand context (**"Load the brand context FIRST"**, immediately below). After that, check whether the request belongs to a specialized domain. If so, **switch to that skill** instead of the data flow below:
|
|
26
24
|
|
|
27
25
|
| If the user wants… | Route to | How |
|
|
28
26
|
| --- | --- | --- |
|
|
29
27
|
| Remix/make an ad, research a brand for ads, OR analyze ad performance — Meta/Google ad campaigns, creative fatigue, CAC/lead quality, competitor ad intel, ad angles & hooks | **`goose-ads`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
|
|
30
28
|
| Charts, infographics, slides, social graphics, branded visual designs from a style/format | **`goose-graphics`** | If installed locally, use it. Otherwise `gooseworks fetch goose-graphics` (or `gooseworks install --claude --with goose-graphics`). |
|
|
31
29
|
| Make a **video** ad — remix a video ad template (e.g. iMessage chat-reveal), or "make the video for project <id>" | **`goose-video`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
|
|
30
|
+
| Make **product photos** — studio, lifestyle, marketplace, social, or on-model product photography | **`goose-product-photos`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
|
|
31
|
+
| Animate an approved static ad or product image | **`animate-image`** | Fetch with `gooseworks fetch animate-image` and follow its GooseWorks MCP workflow. |
|
|
32
32
|
| Anything else — scraping, research, lead gen, enrichment, any data lookup | (stay here) | Follow "How to Use" below. |
|
|
33
33
|
|
|
34
34
|
Examples — all of these route to `goose-ads`, not the data flow: "remix this ad with project id 123", "make an ad for my product", "research my brand", "why is my Meta campaign underperforming", "which creatives should I cut".
|
|
35
35
|
|
|
36
|
+
## Load the brand context FIRST (mandatory — before you route, and before you ask anything)
|
|
37
|
+
|
|
38
|
+
**Call `brand_get_context` before the first substantive step of ANY task**, and before you route to a specialist skill. It is a cheap, read-only call that returns the brand's canonical facts:
|
|
39
|
+
|
|
40
|
+
| It returns | Use it for |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| **voice** — tone, style, banned phrasing | Any copy, script, caption, hook, or headline. Don't ask "what tone?" |
|
|
43
|
+
| **products** — names, descriptions, pricing, links, imagery | Picking the product to feature. Don't ask "which product?" — offer the list. |
|
|
44
|
+
| **audience** — segments, demographics, jobs-to-be-done | Targeting, angles, creator fit. Don't ask "who is this for?" |
|
|
45
|
+
| **positioning** — category, value props, proof points, tagline | Angles, offers, competitive framing. Don't ask "what makes you different?" |
|
|
46
|
+
| **research status** — whether the brand's research pass has completed | Whether the facts are trustworthy yet, or still being filled in. |
|
|
47
|
+
|
|
48
|
+
Then:
|
|
49
|
+
|
|
50
|
+
1. **Pass what it returned INTO the routed skill.** When you hand off to `goose-ads`, `goose-video`, `goose-product-photos`, `goose-graphics`, or a fetched Brand Growth recipe, carry the voice / products / audience / positioning with you. Do **not** make the routed skill re-derive them, and do **not** re-run brand research when the context is already there.
|
|
51
|
+
2. **Never re-ask the user for something the brand context already answers.** If a routed skill's own prose asks a question the context answers, the context wins — answer it yourself and move on. Ask only for what is genuinely missing or ambiguous.
|
|
52
|
+
3. **If research status is not complete**, say so in one line, use what you have, and continue. Only run brand research when the context comes back empty or the user asks for it.
|
|
53
|
+
4. **If `brand_get_context` is unavailable** (no MCP connection), fall back to `get_brand_kit` for the selected brand and treat its fields the same way. If neither is available, tell the user the GooseWorks MCP connection is needed rather than guessing brand facts.
|
|
54
|
+
5. **Treat it as read-only.** Writing brand facts back is the reconciliation flow in `goose-ads` (ask first, then `update_brand_kit`) — not something this router does.
|
|
55
|
+
|
|
56
|
+
Never invent a brand fact. If it isn't in the brand context and the user hasn't said it, ask.
|
|
57
|
+
|
|
36
58
|
## Setup
|
|
37
59
|
|
|
38
60
|
All commands below auto-load credentials from `~/.gooseworks/credentials.json`. If a command exits with "Not logged in", tell the user to run: `npx gooseworks login`. To log out: `npx gooseworks logout`.
|
|
39
61
|
|
|
40
|
-
###
|
|
62
|
+
### Choose the available runtime — MCP first, then CLI
|
|
41
63
|
|
|
42
|
-
|
|
43
|
-
`
|
|
64
|
+
Skills may describe a managed provider request as an environment-neutral operation with
|
|
65
|
+
`provider`, `method`, `path`, and optional `query` or `body`. Execute the operation through
|
|
66
|
+
the first available runtime:
|
|
67
|
+
|
|
68
|
+
1. If the matching GooseWorks MCP tool is registered, use it. For ScrapeCreators, pass the
|
|
69
|
+
operation directly to `call_data_provider`. This is the preferred path in ChatGPT, Cowork,
|
|
70
|
+
and other terminal-free clients. Do not shell out and do not ask for a separate provider key.
|
|
71
|
+
2. Otherwise, if a local terminal and the `gooseworks` CLI are available, translate the same
|
|
72
|
+
operation into `gooseworks call <provider> <path>` with its method, query, and body options.
|
|
73
|
+
3. Otherwise, follow the provider dependency's direct-key path only when the user has supplied
|
|
74
|
+
their own key. If no runtime is available, explain what connection is missing; never pretend
|
|
75
|
+
the provider call ran.
|
|
76
|
+
|
|
77
|
+
The same selection applies to catalog and account operations. When the CLI is unavailable but the
|
|
78
|
+
`mcp__gooseworks__*` tools are connected, use these equivalents:
|
|
44
79
|
- `gooseworks search <q>` → the **`search_skills`** MCP tool.
|
|
45
80
|
- `gooseworks fetch <slug>` → the **`fetch_skill`** MCP tool (same content/scripts/files/deps).
|
|
46
81
|
- `gooseworks credits` → the **`get_ad_credits`** MCP tool.
|
|
47
82
|
|
|
48
|
-
Discovery
|
|
49
|
-
|
|
50
|
-
|
|
83
|
+
Discovery, skill fetching, and ScrapeCreators-backed Brand Growth workflows work fully CLI-free
|
|
84
|
+
this way. Task skills own the endpoint and analysis workflow; this runtime rule owns how the same
|
|
85
|
+
provider operation is executed.
|
|
51
86
|
|
|
52
87
|
To check credit balance:
|
|
53
88
|
```bash
|
|
54
89
|
gooseworks credits
|
|
55
90
|
```
|
|
56
91
|
|
|
57
|
-
##
|
|
92
|
+
## Common company onboarding
|
|
93
|
+
|
|
94
|
+
Onboarding happens inside the current agent and is the first-run gate for every GooseWorks task. It uses the exact same saved state and step order as the web onboarding. The user does not need to type **`/gooseworks onboard me`**; that explicit command only starts or resumes the same flow.
|
|
95
|
+
|
|
96
|
+
Keep the user's original task pending. Call **`brand_onboarding { action: "status" }`** before routing or executing it, then:
|
|
97
|
+
|
|
98
|
+
- follow only the returned `next_step`;
|
|
99
|
+
- save each answer immediately with `brand_onboarding` so web, Claude, Codex, ChatGPT, and Cowork can resume one another;
|
|
100
|
+
- continue the original request immediately when `onboarding_completed` is true.
|
|
101
|
+
|
|
102
|
+
If `brand_onboarding` is unavailable, explain that the GooseWorks MCP connection must be enabled. Do not write a parallel local profile and do not run the retired role / discovery-source / ad-owner questionnaire.
|
|
58
103
|
|
|
59
|
-
|
|
104
|
+
When onboarding returns a review link, show that single link and ask the user to review the creatives and reply `done`. When they reply `done`, do not restart onboarding: continue the task they originally asked for. If there was no earlier task, ask: **“Let’s start your next campaign. What are you promoting, and what result do you want?”** Use the same preserved-task-or-campaign handoff if onboarding completes while the creatives are still being prepared or could not be generated.
|
|
60
105
|
|
|
61
|
-
|
|
62
|
-
- `update_user_context` — save it (partial update; only the fields you pass are touched).
|
|
106
|
+
### Shared flow
|
|
63
107
|
|
|
64
|
-
|
|
108
|
+
Use the host's native question controls. Ask one short group at a time and rely on the live tool schema for accepted values.
|
|
65
109
|
|
|
66
|
-
If
|
|
110
|
+
1. **Start** — If status returns `start`, ask for the company website or Apple App Store URL. Also offer the optional hero product URL and “Where do you do your work?” choices: Slack, WhatsApp, iMessage, Claude Code, Claude, Codex, and ChatGPT. Call `action: "start"`; server-side research begins immediately. If status returns `select_brand`, ask which company/client to use. Otherwise reuse the only brand automatically.
|
|
111
|
+
2. **Your coworker** — Ask what they want to name their Growth Coworker. A text-only client may keep the default avatar; do not block on an image. Save with `action: "save_coworker"`.
|
|
112
|
+
3. **Your company** — Use the returned `company_draft` as the starting point and ask the user to verify or edit: what they sell (`marketCategory`), where people buy (`appPlatforms`), primary customer, customer problem, promised outcome, and optional differentiator. Save with `action: "save_company"`.
|
|
113
|
+
4. **Your taste** — In a terminal or CLI host, use the returned `taste_url`: open it when the host supports opening links and always show one clickable **Choose your taste in GooseWorks** link. Ask the user to heart or skip ads on that page, click **Continue** or **Skip this**, return to the agent, and reply `done`. Do not print, enumerate, or summarize `taste_deck` in the terminal. After `done`, call `brand_onboarding { action: "status" }` again and follow the refreshed `next_step`. In a chat host that renders images, show only the one image attached by the tool and save each Love/Skip decision with `action: "save_taste"`; send `complete: true` after three hearts or an explicit skip.
|
|
114
|
+
5. **First campaign** — Ask **“What’s happening right now?”**: launch `launch`, promotion `promo`, seasonal moment `seasonal`, or nothing special `nothing`, plus an optional note. Call `action: "propose_campaign"`, show the returned editable card (name, objective, offer, audience, 2–3 angles, CTA, and product URL), and save edits with `action: "save_campaign"`. Send `accept: true` only after approval; acceptance can start the complimentary first creatives.
|
|
115
|
+
6. **Where you are** — Ask monthly ad spend (`none`, `under_1k`, `1k_5k`, `5k_25k`, `25k_plus`), annual revenue (`under_1m`, `1m_10m`, `10m_100m`, `100m_plus`), the 90-day goal, current channels (an empty list is a valid “nothing yet”), and at least one channel they are willing to use. Channel values: `paid_social`, `search_ads`, `content`, `creators`, `seo`, `communities`, `referrals`, `partnerships`, `outbound`, `app_stores`, `other`. Save with `action: "save_progress"`.
|
|
116
|
+
7. **Review** — Show the returned founder, researched, and inferred facts with their provenance. The user may correct positioning, audience, voice, value propositions, proof points, or competitors through `action: "review_research"`. Complete the review even when research is still running, failed, or sparse; never trap the user waiting for it.
|
|
117
|
+
8. **Channels** — If `channel_connected` is already true, this is complete automatically. Otherwise ask whether they want to connect Slack, WhatsApp, or iMessage later, or skip for now. An explicit skip is valid; call `action: "complete_channels"`.
|
|
67
118
|
|
|
68
|
-
|
|
119
|
+
Do not ask for role, discovery source, who makes creatives, who manages ads, or a separate “what do you want to do first?” menu. Those belonged to the retired CLI questionnaire. The task the user already asked for is their first task.
|
|
69
120
|
|
|
70
|
-
|
|
71
|
-
1. **What's your company's website?** → `company_website`
|
|
72
|
-
2. **What's your role?** → `role`
|
|
73
|
-
3. **What are you hoping to use Goose skills for?** (multi-select — pick any): generate ad creatives · research and run ads end-to-end · finding influencers · data scraping (social / ads / reddit) · finding leads & emails · something else → `use_cases` (array)
|
|
74
|
-
4. **What high-priority growth / marketing tasks would you like help with right now?** The more context they share, the better you can help. → `goals`
|
|
121
|
+
## Brand Growth discovery
|
|
75
122
|
|
|
76
|
-
|
|
123
|
+
Brand Growth is a collection inside the normal skill catalog, not a command or installable pack. Use these known routes when relevant, while preserving all existing B2B, sales, research, lead-generation, and data behavior:
|
|
77
124
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
125
|
+
| Job | Skill |
|
|
126
|
+
| --- | --- |
|
|
127
|
+
| Brand foundation | `brand-research` |
|
|
128
|
+
| Competitor ads | `competitor-ad-intelligence` |
|
|
129
|
+
| Customer language and angles | `comment-mining`, `ad-angle-miner` |
|
|
130
|
+
| Competitor social content | `competitor-social-research` |
|
|
131
|
+
| Audience definition | `audience-research` |
|
|
132
|
+
| Creator discovery and evaluation | `influencer-prospecting`, `creator-profile-teardown` |
|
|
133
|
+
| Trends and outlier posts | `trend-discovery`, `outlier-post-finder` |
|
|
134
|
+
| Social listening and product demand | `social-listening-brief`, `product-demand-research` |
|
|
135
|
+
| Long-form source material (calls, podcasts, videos) | `transcript-intelligence` |
|
|
136
|
+
| Meta performance, policy, and landing-page match | `meta-ads-analyzer`, `meta-ad-policy-checker`, `ad-to-landing-page-auditor` |
|
|
137
|
+
| Static ads | `goose-ads`, `remix-graphic-ad-from-reference` |
|
|
138
|
+
| Product photos | `goose-product-photos`, `product-photoshoot` |
|
|
139
|
+
| Written content and repurposing | `content-repurposing` |
|
|
140
|
+
| Graphics and animation | `goose-graphics`, `animate-image` |
|
|
87
141
|
|
|
88
|
-
|
|
142
|
+
Fetch the named public skill before following it. You already called `brand_get_context` — hand the brand's voice, products, audience, and positioning to the fetched skill instead of letting it re-derive or re-ask them. Provider helpers such as `scrapecreators-api` and `transcript-intelligence` are dependencies, not user-facing results.
|
|
89
143
|
|
|
90
|
-
|
|
91
|
-
|
|
144
|
+
For a multi-part request, repeat this routing check before each new job. Fetch and follow the
|
|
145
|
+
closest outcome skill first (for example, `comment-mining`, `creator-profile-teardown`, or
|
|
146
|
+
`content-repurposing`) before calling provider APIs or improvising a workflow. Provider calls
|
|
147
|
+
collect inputs for the outcome skill; they do not replace it.
|
|
92
148
|
|
|
93
149
|
## How to Use
|
|
94
150
|
|
|
@@ -128,6 +184,7 @@ Follow the instructions in the skill's `content` field. **Save ALL files from bo
|
|
|
128
184
|
> - **Credentials (only needed before running Python scripts, NOT before gooseworks commands):** replace the python one-liner exports with `eval $(gooseworks env)`. Skip entirely if you are only using `gooseworks call` — it loads credentials automatically.
|
|
129
185
|
> - **Orthogonal run:** replace `curl ... /v1/proxy/orthogonal/run ... -d '{"api":"X","path":"/Y","body":{...}}'` with `gooseworks call X /Y --body='{...}'`
|
|
130
186
|
> - **Direct proxy:** replace `curl ... /v1/proxy/<provider>/<path> ... -d '{...}'` with `gooseworks call <provider> <path> --body='{...}'`
|
|
187
|
+
> - **ScrapeCreators:** call its first-party GooseWorks proxy directly with `gooseworks call scrapecreators <path> --query='{...}'`. Use ScrapeCreators' official OpenAPI for endpoint parameters; do not use Orthogonal as its endpoint catalog. GET is the default; add `--method POST --body='{...}'` only for an official POST operation.
|
|
131
188
|
> - **Orthogonal search:** replace `curl ... /v1/proxy/orthogonal/search ... -d '{"prompt":"..."}'` with `gooseworks orthogonal find "..."`
|
|
132
189
|
|
|
133
190
|
1. Save each script from `scripts` to `/tmp/gooseworks-scripts/<slug>/scripts/` — **NEVER save scripts into the user's project directory**
|
|
@@ -166,9 +223,10 @@ gooseworks call hunter /v2/email-finder --query='{"domain":"stripe.com","first_n
|
|
|
166
223
|
- Output: JSON response data, followed by a `Cost: <N> credits` line when applicable
|
|
167
224
|
- **Always tell the user the cost** after each call
|
|
168
225
|
|
|
169
|
-
The same `gooseworks call` command also handles direct-proxy providers (apify, apollo, crustdata):
|
|
226
|
+
The same `gooseworks call` command also handles direct-proxy providers (apify, apollo, crustdata, scrapecreators):
|
|
170
227
|
```bash
|
|
171
228
|
gooseworks call apify acts/parseforge~reddit-posts-scraper/runs --body='{"subreddit":"ClaudeAI"}'
|
|
229
|
+
gooseworks call scrapecreators /v2/instagram/post/comments --query='{"url":"https://www.instagram.com/p/POST_ID/"}'
|
|
172
230
|
```
|
|
173
231
|
|
|
174
232
|
### Workflow
|
|
@@ -199,7 +257,7 @@ The `gooseworks` CLI sends authenticated requests (Bearer `GOOSEWORKS_API_KEY`)
|
|
|
199
257
|
| `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search` | POST | `gooseworks orthogonal find` |
|
|
200
258
|
| `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details` | POST | `gooseworks orthogonal describe` |
|
|
201
259
|
| `$GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run` | POST | `gooseworks call` (orthogonal-routed providers) |
|
|
202
|
-
| `$GOOSEWORKS_API_BASE/v1/proxy/{apify,apollo,crustdata}/*` | Various | `gooseworks call` (direct-proxy providers) |
|
|
260
|
+
| `$GOOSEWORKS_API_BASE/v1/proxy/{apify,apollo,crustdata,scrapecreators}/*` | Various | `gooseworks call` (direct-proxy providers; ScrapeCreators uses its managed first-party key) |
|
|
203
261
|
|
|
204
262
|
## Security & Privacy
|
|
205
263
|
|
|
@@ -211,6 +269,7 @@ The `gooseworks` CLI sends authenticated requests (Bearer `GOOSEWORKS_API_KEY`)
|
|
|
211
269
|
|
|
212
270
|
## Rules
|
|
213
271
|
|
|
272
|
+
0. **Call `brand_get_context` before anything else**, pass what it returns into whatever skill you route to, and never re-ask the user for a fact it already answers (see "Load the brand context FIRST").
|
|
214
273
|
1. **Consider a GooseWorks skill when it fits the task** — scraping, research, lead gen, enrichment, especially at scale, behind auth, or from a specific source. For a quick lookup your built-in tools are fine; use your judgement and pick the best tool for the user.
|
|
215
274
|
2. **Before paid operations**, tell the user the estimated credit cost
|
|
216
275
|
3. **If a `gooseworks` command exits with "Not logged in"**: tell the user to run `npx gooseworks login`
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Generated by `npm run generate:skills` from gooseworks/src/skills/routes.ts — the single source for GooseWorks skill routing (GOOSE-3190). Do not hand-edit. Consumers: goose-skills/collections/brand-growth/routes.json and gooseworks-app/backend/src/app-mcp-server/lib/ads-skill.ts.",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"domain_routes": [
|
|
5
|
+
{
|
|
6
|
+
"skill": "goose-ads",
|
|
7
|
+
"when": "Remix/make an ad, research a brand for ads, OR analyze ad performance — Meta/Google ad campaigns, creative fatigue, CAC/lead quality, competitor ad intel, ad angles & hooks",
|
|
8
|
+
"how": "Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`.",
|
|
9
|
+
"delivery": "entry"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"skill": "goose-graphics",
|
|
13
|
+
"when": "Charts, infographics, slides, social graphics, branded visual designs from a style/format",
|
|
14
|
+
"how": "If installed locally, use it. Otherwise `gooseworks fetch goose-graphics` (or `gooseworks install --claude --with goose-graphics`).",
|
|
15
|
+
"delivery": "fetch"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"skill": "goose-video",
|
|
19
|
+
"when": "Make a **video** ad — remix a video ad template (e.g. iMessage chat-reveal), or \"make the video for project <id>\"",
|
|
20
|
+
"how": "Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`.",
|
|
21
|
+
"delivery": "entry"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"skill": "goose-product-photos",
|
|
25
|
+
"when": "Make **product photos** — studio, lifestyle, marketplace, social, or on-model product photography",
|
|
26
|
+
"how": "Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`.",
|
|
27
|
+
"delivery": "entry"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"skill": "animate-image",
|
|
31
|
+
"when": "Animate an approved static ad or product image",
|
|
32
|
+
"how": "Fetch with `gooseworks fetch animate-image` and follow its GooseWorks MCP workflow.",
|
|
33
|
+
"delivery": "fetch"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"brand_growth_routes": [
|
|
37
|
+
{
|
|
38
|
+
"job": "Brand foundation",
|
|
39
|
+
"skills": [
|
|
40
|
+
"brand-research"
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"job": "Competitor ads",
|
|
45
|
+
"skills": [
|
|
46
|
+
"competitor-ad-intelligence"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"job": "Customer language and angles",
|
|
51
|
+
"skills": [
|
|
52
|
+
"comment-mining",
|
|
53
|
+
"ad-angle-miner"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"job": "Competitor social content",
|
|
58
|
+
"skills": [
|
|
59
|
+
"competitor-social-research"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"job": "Audience definition",
|
|
64
|
+
"skills": [
|
|
65
|
+
"audience-research"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"job": "Creator discovery and evaluation",
|
|
70
|
+
"skills": [
|
|
71
|
+
"influencer-prospecting",
|
|
72
|
+
"creator-profile-teardown"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"job": "Trends and outlier posts",
|
|
77
|
+
"skills": [
|
|
78
|
+
"trend-discovery",
|
|
79
|
+
"outlier-post-finder"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"job": "Social listening and product demand",
|
|
84
|
+
"skills": [
|
|
85
|
+
"social-listening-brief",
|
|
86
|
+
"product-demand-research"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"job": "Long-form source material (calls, podcasts, videos)",
|
|
91
|
+
"skills": [
|
|
92
|
+
"transcript-intelligence"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"job": "Meta performance, policy, and landing-page match",
|
|
97
|
+
"skills": [
|
|
98
|
+
"meta-ads-analyzer",
|
|
99
|
+
"meta-ad-policy-checker",
|
|
100
|
+
"ad-to-landing-page-auditor"
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"job": "Static ads",
|
|
105
|
+
"skills": [
|
|
106
|
+
"goose-ads",
|
|
107
|
+
"remix-graphic-ad-from-reference"
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"job": "Product photos",
|
|
112
|
+
"skills": [
|
|
113
|
+
"goose-product-photos",
|
|
114
|
+
"product-photoshoot"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"job": "Written content and repurposing",
|
|
119
|
+
"skills": [
|
|
120
|
+
"content-repurposing"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"job": "Graphics and animation",
|
|
125
|
+
"skills": [
|
|
126
|
+
"goose-graphics",
|
|
127
|
+
"animate-image"
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"skills": [
|
|
132
|
+
"ad-angle-miner",
|
|
133
|
+
"ad-to-landing-page-auditor",
|
|
134
|
+
"animate-image",
|
|
135
|
+
"audience-research",
|
|
136
|
+
"brand-research",
|
|
137
|
+
"comment-mining",
|
|
138
|
+
"competitor-ad-intelligence",
|
|
139
|
+
"competitor-social-research",
|
|
140
|
+
"content-repurposing",
|
|
141
|
+
"creator-profile-teardown",
|
|
142
|
+
"goose-ads",
|
|
143
|
+
"goose-graphics",
|
|
144
|
+
"goose-product-photos",
|
|
145
|
+
"goose-video",
|
|
146
|
+
"influencer-prospecting",
|
|
147
|
+
"meta-ad-policy-checker",
|
|
148
|
+
"meta-ads-analyzer",
|
|
149
|
+
"outlier-post-finder",
|
|
150
|
+
"product-demand-research",
|
|
151
|
+
"product-photoshoot",
|
|
152
|
+
"remix-graphic-ad-from-reference",
|
|
153
|
+
"social-listening-brief",
|
|
154
|
+
"transcript-intelligence",
|
|
155
|
+
"trend-discovery"
|
|
156
|
+
]
|
|
157
|
+
}
|