gooseworks 0.4.4 → 0.4.5-dev.15.facf60fb

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.
Files changed (120) hide show
  1. package/README.md +42 -11
  2. package/dist/agents/staging.d.ts +38 -0
  3. package/dist/agents/staging.d.ts.map +1 -0
  4. package/dist/agents/staging.js +309 -0
  5. package/dist/agents/staging.js.map +1 -0
  6. package/dist/auth/credentials.d.ts +1 -0
  7. package/dist/auth/credentials.d.ts.map +1 -1
  8. package/dist/auth/credentials.js +26 -8
  9. package/dist/auth/credentials.js.map +1 -1
  10. package/dist/auth/device-flow.d.ts +79 -0
  11. package/dist/auth/device-flow.d.ts.map +1 -0
  12. package/dist/auth/device-flow.js +411 -0
  13. package/dist/auth/device-flow.js.map +1 -0
  14. package/dist/auth/login-mode.d.ts +25 -0
  15. package/dist/auth/login-mode.d.ts.map +1 -0
  16. package/dist/auth/login-mode.js +87 -0
  17. package/dist/auth/login-mode.js.map +1 -0
  18. package/dist/auth/oauth-server.d.ts +2 -2
  19. package/dist/auth/oauth-server.d.ts.map +1 -1
  20. package/dist/auth/oauth-server.js +28 -5
  21. package/dist/auth/oauth-server.js.map +1 -1
  22. package/dist/auth/paste-login.d.ts +27 -0
  23. package/dist/auth/paste-login.d.ts.map +1 -0
  24. package/dist/auth/paste-login.js +203 -0
  25. package/dist/auth/paste-login.js.map +1 -0
  26. package/dist/commands/doctor.d.ts.map +1 -1
  27. package/dist/commands/doctor.js +17 -8
  28. package/dist/commands/doctor.js.map +1 -1
  29. package/dist/commands/formats.js +2 -2
  30. package/dist/commands/formats.js.map +1 -1
  31. package/dist/commands/graphics/publish-flow.js +1 -1
  32. package/dist/commands/graphics/publish-flow.js.map +1 -1
  33. package/dist/commands/install.d.ts.map +1 -1
  34. package/dist/commands/install.js +101 -34
  35. package/dist/commands/install.js.map +1 -1
  36. package/dist/commands/launch.d.ts +3 -0
  37. package/dist/commands/launch.d.ts.map +1 -0
  38. package/dist/commands/launch.js +35 -0
  39. package/dist/commands/launch.js.map +1 -0
  40. package/dist/commands/login.d.ts +21 -1
  41. package/dist/commands/login.d.ts.map +1 -1
  42. package/dist/commands/login.js +106 -29
  43. package/dist/commands/login.js.map +1 -1
  44. package/dist/commands/logout.d.ts.map +1 -1
  45. package/dist/commands/logout.js +7 -1
  46. package/dist/commands/logout.js.map +1 -1
  47. package/dist/commands/skills.d.ts +16 -0
  48. package/dist/commands/skills.d.ts.map +1 -1
  49. package/dist/commands/skills.js +52 -1
  50. package/dist/commands/skills.js.map +1 -1
  51. package/dist/commands/styles.js +2 -2
  52. package/dist/commands/styles.js.map +1 -1
  53. package/dist/commands/tool.d.ts +17 -0
  54. package/dist/commands/tool.d.ts.map +1 -0
  55. package/dist/commands/tool.js +239 -0
  56. package/dist/commands/tool.js.map +1 -0
  57. package/dist/commands/update.d.ts.map +1 -1
  58. package/dist/commands/update.js +20 -0
  59. package/dist/commands/update.js.map +1 -1
  60. package/dist/commands/video-local.d.ts.map +1 -1
  61. package/dist/commands/video-local.js +2 -2
  62. package/dist/commands/video-local.js.map +1 -1
  63. package/dist/config.d.ts.map +1 -1
  64. package/dist/config.js +14 -3
  65. package/dist/config.js.map +1 -1
  66. package/dist/environment.d.ts +9 -0
  67. package/dist/environment.d.ts.map +1 -0
  68. package/dist/environment.js +105 -0
  69. package/dist/environment.js.map +1 -0
  70. package/dist/index.js +12 -45
  71. package/dist/index.js.map +1 -1
  72. package/dist/lib/graphics-cache.d.ts.map +1 -1
  73. package/dist/lib/graphics-cache.js +2 -2
  74. package/dist/lib/graphics-cache.js.map +1 -1
  75. package/dist/lib/mcp-client.d.ts +53 -0
  76. package/dist/lib/mcp-client.d.ts.map +1 -0
  77. package/dist/lib/mcp-client.js +196 -0
  78. package/dist/lib/mcp-client.js.map +1 -0
  79. package/dist/program.d.ts +2 -0
  80. package/dist/program.d.ts.map +1 -0
  81. package/dist/program.js +56 -0
  82. package/dist/program.js.map +1 -0
  83. package/dist/skills/custom-video-skill.d.ts +1 -1
  84. package/dist/skills/custom-video-skill.d.ts.map +1 -1
  85. package/dist/skills/custom-video-skill.js +1 -1
  86. package/dist/skills/custom-video-skill.js.map +1 -1
  87. package/dist/skills/installer.d.ts.map +1 -1
  88. package/dist/skills/installer.js +42 -24
  89. package/dist/skills/installer.js.map +1 -1
  90. package/dist/skills/master-skill.d.ts +12 -9
  91. package/dist/skills/master-skill.d.ts.map +1 -1
  92. package/dist/skills/master-skill.js +857 -372
  93. package/dist/skills/master-skill.js.map +1 -1
  94. package/dist/skills/releases.d.ts +1 -1
  95. package/dist/skills/releases.d.ts.map +1 -1
  96. package/dist/skills/releases.js +8 -5
  97. package/dist/skills/releases.js.map +1 -1
  98. package/dist/skills/routes.js +8 -8
  99. package/dist/skills/routes.js.map +1 -1
  100. package/dist/skills/staging-content.d.ts +3 -0
  101. package/dist/skills/staging-content.d.ts.map +1 -0
  102. package/dist/skills/staging-content.js +12 -0
  103. package/dist/skills/staging-content.js.map +1 -0
  104. package/dist/utils/http.d.ts +7 -1
  105. package/dist/utils/http.d.ts.map +1 -1
  106. package/dist/utils/http.js +5 -1
  107. package/dist/utils/http.js.map +1 -1
  108. package/package.json +12 -4
  109. package/skills/goose-ads/SKILL.md +386 -224
  110. package/skills/goose-product-photos/SKILL.md +107 -58
  111. package/skills/goose-video/SKILL.md +300 -36
  112. package/skills/goose-video-local/SKILL.md +239 -31
  113. package/skills/gooseworks/SKILL.md +133 -26
  114. package/skills/make-custom-video/SKILL.md +256 -11
  115. package/skills/manifest.json +7 -7
  116. package/skills/routes.json +8 -8
  117. package/dist/skills/fetcher.d.ts +0 -18
  118. package/dist/skills/fetcher.d.ts.map +0 -1
  119. package/dist/skills/fetcher.js +0 -118
  120. package/dist/skills/fetcher.js.map +0 -1
@@ -8,7 +8,7 @@ description: >
8
8
  Capture founder answers, brand rules, audience depth, and video taste in the existing brand.
9
9
  Use it as the single GooseWorks entry point for brand growth, B2B, sales, research, and GTM work.
10
10
  category: general
11
- version: 1.0.0
11
+ version: 1.1.2
12
12
  author: GooseWorks
13
13
  tags: [gooseworks, data, scraping, search, reddit, twitter, linkedin, email, people, research, gtm, leads, prospecting]
14
14
  ---
@@ -71,9 +71,45 @@ and approval before spending. Hosted installed snapshots use the existing Skills
71
71
  Skill content and a host's cached MCP tool schemas are separate: refreshing one does not refresh
72
72
  the other. Check the actual advertised tools before using new fields.
73
73
 
74
+ ## No GooseWorks tools in this session? Call them through the CLI
75
+
76
+ The GooseWorks tools named here (for example `account_whoami`, `brand_onboarding`,
77
+ `brand_read`) normally come from the GooseWorks connector. If they are not registered in this
78
+ session but you have a shell with the `gooseworks` CLI signed in (a cloud sandbox such as
79
+ ChatGPT agent, Meta AI or Grok), call the same tool from the shell:
80
+
81
+ ```bash
82
+ npx gooseworks tool <name> '<arguments as a JSON object>'
83
+ ```
84
+
85
+ - Run `npx gooseworks tool --list` once first. It prints the server's rules for using the tools
86
+ and every tool name; `npx gooseworks tool <name> --schema` shows one tool's arguments.
87
+ - The result prints as JSON. When a tool answers with a one-line summary, the fields you act on
88
+ (such as `next_step` and ids) follow under "Data:". It exits 1 when the tool reports an error.
89
+ - Nothing renders as a widget here, so tell the user the result in plain words.
90
+ - The same rules apply as over the connector: state the credit total and get the user's yes
91
+ before paid work.
92
+ - If it says you are not logged in, run `npx gooseworks login --device --no-wait`, show the
93
+ user the link and code it prints, and run `npx gooseworks login --device` once they approve.
94
+
95
+ When the tools are registered in this session, call them directly instead.
96
+
74
97
  ## Route to the right skill FIRST
75
98
 
76
- 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:
99
+ 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. For video work, load the current matching workflow from the selected connection first: `goose-video` for a new request, `make-custom-video` for an explicit original/reference brief, or `goose-video-local` for an existing template project/batch. Read an existing project first to determine its actual route and retain its approved packages. Fetch with the advertised `catalog_fetch { type: "skill", slug }`; an installed copy or old chat is only a bootstrap. Then load the brand context (**"Load the brand context FIRST"**, immediately below), search the Brand Brain for the task (**"Search the Brand Brain, then propose"**), and follow the matching workflow with both. For other specialized work, **switch to that skill** after loading the brand instead of the data flow below:
100
+
101
+ **Follow the connector's full-guide requirement when available.** Fetch
102
+ `catalog_fetch { type: "skill", slug: "gooseworks-guide" }` when the connector requires it.
103
+ The only older-server exception is below; it never removes brand preparation or approvals.
104
+
105
+ | Returned guide/workflow state on the selected connection | Required action |
106
+ | --- | --- |
107
+ | Guide returns `not_found`, and this same connection already returned the complete current matching video entry with its required dependencies | Continue with that authoritative entry's workflow, full brand preparation and existing approvals. |
108
+ | Guide has another error, no response, or incomplete content; or the matching entry/dependencies are missing, incomplete or from another connection | Stop before creative work, project writes or paid calls; resolve a compatible connection on this same environment. |
109
+
110
+ A missing custom entry or required custom tool/schema remains unavailable: never substitute
111
+ a template or an import to bypass it. Never hide other fetch errors or continue from cached
112
+ instructions merely because the guide was not found.
77
113
 
78
114
  For "interview me about the brand", "save our brand rules", "refine our audience", or "remember
79
115
  our video taste", stay here and follow **Guided brand capture** below. This extends the current
@@ -81,13 +117,13 @@ brand and onboarding flow; it does not create another onboarding checklist.
81
117
 
82
118
  | If the user wants… | Route to | How |
83
119
  | --- | --- | --- |
84
- | 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`. |
120
+ | 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`** | In a chat app, fetch it with `catalog_fetch { type: "skill", slug: "goose-ads" }`. In a terminal, use the installed entry skill; if it is missing, run `gooseworks install --claude`. |
85
121
  | 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`). |
86
- | Make a **video** ad from a template or an original brief. Template-free briefs and Instagram/direct video references route to make-custom-video. Growth renders in its sandbox; connected coding agents use their local toolchain. | **`goose-video`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
87
- | Create an original branded video without a template, adapt an Instagram/direct video reference, or resume a generated custom project; separate Studio script and ingredient approvals are required | **`make-custom-video`** | Use the installed GooseWorks connection entry, or fetch make-custom-video through the catalog. It loads video-production-harness; Growth uses its sandbox and connected agents use their local tools. |
88
- | Render an EXISTING app video project or batch on this machine — the app's "copy for Claude" command names it | **`goose-video-local`** | Installed locally as an entry skill. Just use it. If unavailable, run `gooseworks install --claude`. |
89
- | 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`. |
90
- | Animate an approved static ad or product image | **`animate-image`** | Fetch with `gooseworks fetch animate-image` and follow its GooseWorks MCP workflow. |
122
+ | Make a **video** ad from a template or an original brief. Template-free briefs and Instagram/direct video references route to make-custom-video. An agent that can run shell commands on the customer's computer makes it there; otherwise the GooseWorks coworker makes it. | **`goose-video`** | For new work, fetch the current goose-video entry from the selected connection, then load the full brand before format suggestions. An installed entry is a bootstrap; keep approved project packages on resume. |
123
+ | Create an original branded video without a template, adapt an Instagram/direct video reference, or resume a generated custom project; separate script and ingredient approvals are required in the same chat | **`make-custom-video`** | Fetch the current make-custom-video entry and its production harness for new work, then read summary, kit, products and learnings before script writing. Read an existing project first and retain its approved package/context on resume. |
124
+ | Render an EXISTING app video project or batch on this machine — the app's "copy for Claude" command names it | **`goose-video-local`** | Read the existing project first. Use the current goose-video-local entry as the connection adapter, retain approved recipe packages/context and apply brand preparation before a new plan or script. |
125
+ | Make **product photos** — studio, lifestyle, marketplace, social, or on-model product photography | **`goose-product-photos`** | In a chat app, fetch it with `catalog_fetch { type: "skill", slug: "goose-product-photos" }`. In a terminal, use the installed entry skill; if it is missing, run `gooseworks install --claude`. |
126
+ | Animate an approved static ad or product image | **`animate-image`** | Fetch it (`catalog_fetch { type: "skill", slug: "animate-image" }` in a chat app, `gooseworks fetch animate-image` in a terminal) and follow its GooseWorks MCP workflow. |
91
127
  | Anything else — scraping, research, lead gen, enrichment, any data lookup | (stay here) | Follow "How to Use" below. |
92
128
 
93
129
  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".
@@ -96,27 +132,84 @@ Examples — all of these route to `goose-ads`, not the data flow: "remix this a
96
132
 
97
133
  **Call `brand_read { brand_id, sections: ["summary", "kit", "products", "learnings", "onboarding"] }` before the first substantive step of ANY task**, and before you route to a specialist skill. Older clients can use `brand_get_context` with the same sections only when that tool is advertised. It is a read-only call that returns the brand's canonical facts and saved rules:
98
134
 
135
+ For videos, read the current workflow first as described above, then load all four creative
136
+ sections (summary, kit, products and learnings) before suggesting formats, choosing angles or
137
+ writing a script. Onboarding facts alone are insufficient. Carry saved rules and kit assets
138
+ into the specialist's brand preparation. `Video preference:` rules describe the look, voice
139
+ and pacing; they are not lines to read aloud. On an approved resume, preserve the saved brand
140
+ inputs and packages; an intentional change uses the existing affected review/approval gates.
141
+
99
142
  | It returns | Use it for |
100
143
  | --- | --- |
101
144
  | **voice** — tone, style, banned phrasing | Any copy, script, caption, hook, or headline. Don't ask "what tone?" |
102
145
  | **products** — names, descriptions, pricing, links, imagery | Picking the product to feature. Don't ask "which product?" — offer the list. |
103
146
  | **audience** — segments, demographics, jobs-to-be-done | Targeting, angles, creator fit. Don't ask "who is this for?" |
104
- | **positioning** — category, value props, proof points, tagline | Angles, offers, competitive framing. Don't ask "what makes you different?" |
147
+ | **positioning** — category, value props, proof points, tagline | Angles, offers, competitive framing. Don't ask "what makes you different?" Kit proof points are proof an ad may state as written; other positioning text is context. |
105
148
  | **research status** — whether the brand's research pass has completed | Whether the facts are trustworthy yet, or still being filled in. |
106
149
 
107
150
  Then:
108
151
 
109
- 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.
110
- 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.
152
+ 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, plus the evidence brief from the Brain search below. Do **not** make the routed skill re-derive them, and do **not** re-run brand research when the context is already there.
153
+ 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 or the Brain search answers, they win — answer it yourself and move on. Ask only for what is genuinely missing after both, or a decision that is the user's to make.
111
154
  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.
112
155
  4. **If `brand_read` is unavailable**, refresh the GooseWorks connection or tool list. An older connection may expose `brand_get_context` / `get_brand_kit`; use those only when actually advertised. Never require a legacy tool name or guess brand facts.
113
156
  5. **A read grants no write permission.** Save explicit durable answers/corrections with the capture policy below. Propose agent-derived changes for review; never overwrite confirmed knowledge with research or a guess.
114
157
 
115
- Never invent a brand fact. If it isn't in the brand context and the user hasn't said it, ask.
158
+ Never invent a brand fact. If it isn't in the brand context and the user hasn't said it, search
159
+ the Brand Brain next. Ask the user only when that search cannot answer it and the answer is
160
+ theirs to give.
161
+
162
+ ## Search the Brand Brain, then propose — before any creative choice or question
163
+
164
+ The Brand Kit is a summary. The brand's saved knowledge (its Brain) holds what the Kit does not:
165
+ rules from past feedback, approved and rejected creatives, customer evidence, approved claims,
166
+ reports and documents. **After `brand_read`, and before you choose an angle, claim, hook,
167
+ product emphasis, format or source ad — and before you ask the user for any brand fact — call
168
+ `knowledge_search { brand_id, query }`** when it is registered. It is free and read-only: no
169
+ approval, no announcement to the customer and no questionnaire.
170
+
171
+ 1. **Search for this task, not the whole Brain.** Run one short query (under 500 characters) in
172
+ the user's own words plus the product (for example "ads for <product>: what worked, what to
173
+ avoid") and one with
174
+ `source_types: ["evidence", "claim", "learning", "creative", "document"]` for proof and past
175
+ creative results. Add a query only for a specific open question. Reuse results from this run.
176
+ 2. **Keep these states distinct** and record which one each query returned:
177
+
178
+ | Result | Means | Do |
179
+ | --- | --- | --- |
180
+ | `status: "ok"` with matches | Saved knowledge exists | Use it; keep each fact's citation in your working brief |
181
+ | `status: "empty"` | Nothing saved matches this query | Say "no saved evidence for <topic>", never "the brand has no proof" |
182
+ | `refresh_required` | The results shown are current; some changed sources were left out | Use them; search again shortly for anything missing |
183
+ | `building` | The index is not ready | Retry once shortly, then continue with the gap stated |
184
+ | An error, or the tool is not registered | Retrieval failed or is unavailable | Retry an error once, then continue from `brand_read` and treat evidence as unchecked |
185
+ | An empty Kit field | Only that field is blank | Not a search result: still search before asking |
186
+
187
+ 3. **Let the findings change the plan.** A `dont`/`must` learning or a rejected creative rules
188
+ options out; an approved or well-rated past creative is a proven angle to lead with; a report
189
+ shows what worked. Claim-grade proof is a result with `approved_ad_claim: true` or the kit's
190
+ `approvedClaims` within their stated applicability; the kit's `proofPoints` are what the
191
+ backend allows an ad to state, used as written. Other Kit text, documents and performance
192
+ numbers are context, never public claims. Never invent an offer, price or result. Judge
193
+ relevance and skip results about another product or business.
194
+ 4. **Propose; don't interview.** Lead with one recommended direction (angle, product, source or
195
+ format) and a one-line reason naming what you found, with up to two alternatives. When several
196
+ directions fit (two audiences, products or campaigns), pick the one the evidence favours, such
197
+ as an active campaign or approved past creatives, and name the other as an alternative instead
198
+ of asking. Ask only for a decision the brand read and the search cannot settle, or for spend
199
+ approval. Never ask the user for a fact the Brain already answered.
200
+ Keep directions already chosen (the user's words, a project's creative brief, handed-off
201
+ defaults, approved plans): search only to fill empty fields and to apply saved rules. When a
202
+ returned card or picker presents the choice, your recommendation is its one acknowledgement
203
+ line and the saved plan's defaults, not a separate list.
204
+ 5. **Carry an evidence brief** into the routed skill, writer or plan: findings with citations,
205
+ the state of each query, what it ruled out and the open gaps. Tell the customer the findings
206
+ in plain words; the citations stay in the brief.
207
+
208
+ On an approved resume, keep the saved brief and evidence; search again only for a new decision.
116
209
 
117
210
  ## Setup
118
211
 
119
- 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`.
212
+ 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`. In a cloud sandbox or over SSH, sign in with a code instead: run `npx gooseworks login --device --no-wait` yourself, show the user the link and code it prints, and run `npx gooseworks login --device` once they have approved. To log out: `npx gooseworks logout`.
120
213
 
121
214
  ### Choose the available runtime — MCP first, then CLI
122
215
 
@@ -124,20 +217,33 @@ Skills may describe a managed provider request as an environment-neutral operati
124
217
  `provider`, `method`, `path`, and optional `query` or `body`. Execute the operation through
125
218
  the first available runtime:
126
219
 
127
- 1. If the matching GooseWorks MCP tool is registered, use it. For ScrapeCreators, pass the
128
- operation directly to `call_data_provider`. This is the preferred path in ChatGPT, Cowork,
129
- and other terminal-free clients. Do not shell out and do not ask for a separate provider key.
220
+ 1. If the matching GooseWorks MCP tool is registered, use it. For ScrapeCreators, pass a GET
221
+ operation directly to `data_call_provider` (`provider`, `path`, `query`) and a POST
222
+ operation to `data_post_provider` (`provider`, `path`, `body`, optional `query`).
223
+ This is the preferred path in ChatGPT, Cowork, and other terminal-free clients.
224
+ Do not shell out and do not ask for a separate provider key.
130
225
  2. Otherwise, if a local terminal and the `gooseworks` CLI are available, translate the same
131
226
  operation into `gooseworks call <provider> <path>` with its method, query, and body options.
132
227
  3. Otherwise, follow the provider dependency's direct-key path only when the user has supplied
133
228
  their own key. If no runtime is available, explain what connection is missing; never pretend
134
229
  the provider call ran.
135
230
 
231
+ Managed provider calls are paid on the MCP and CLI runtimes alike (a ScrapeCreators call costs 1
232
+ credit today, and each result reports what it charged). Before a skill's first paid call, tell the
233
+ user roughly how many calls it will make and the credit total, and get their yes.
234
+
136
235
  The same selection applies to catalog and account operations. When the CLI is unavailable but the
137
- `mcp__gooseworks__*` tools are connected, use these equivalents:
138
- - `gooseworks search <q>` → the **`search_skills`** MCP tool.
139
- - `gooseworks fetch <slug>` → the **`fetch_skill`** MCP tool (same content/scripts/files/deps).
140
- - `gooseworks credits` → the **`get_ad_credits`** MCP tool.
236
+ GooseWorks MCP tools are connected, use these equivalents. Match on the tool name: a coding agent
237
+ may show a server prefix (for example `mcp__gooseworks__catalog_search`), a chat app may not.
238
+ - `gooseworks search <q>` → **`catalog_search { type: "skill", query: "<q>" }`**.
239
+ - `gooseworks fetch <slug>` → **`catalog_fetch { type: "skill", slug: "<slug>" }`** (same content/scripts/files/deps).
240
+ - `gooseworks credits` → **`account_whoami`** (the balance is `credits.available_credits`).
241
+
242
+ If one of these tools is missing, the GooseWorks connection or its tool list is stale: ask the
243
+ user to reconnect or refresh GooseWorks. Installing or updating the `gooseworks` CLI never fixes
244
+ a missing connector tool, so never send a chat-app user to a terminal for it. An agent that has
245
+ its own shell and a signed-in CLI can call the tool with `npx gooseworks tool` instead (see
246
+ "No GooseWorks tools in this session?" above).
141
247
 
142
248
  Discovery, skill fetching, and ScrapeCreators-backed Brand Growth workflows work fully CLI-free
143
249
  this way. Task skills own the endpoint and analysis workflow; this runtime rule owns how the same
@@ -187,8 +293,8 @@ already volunteered in this chat, and **save known information first** using the
187
293
  mapping below. Do not run a long questionnaire as a prerequisite for making an ad.
188
294
 
189
295
  For facts needed by the task but absent from the read, call `knowledge_search` first if it is
190
- registered. Use returned citations and states honestly: an empty, building or failed index is
191
- not proof that the brand has no answer. Do not re-scrape or ask the founder for a fact already
296
+ registered, as in **"Search the Brand Brain, then propose"**. Use returned citations and states
297
+ honestly: an empty, building or failed index is not proof that the brand has no answer. Do not re-scrape or ask the founder for a fact already
192
298
  answered by trustworthy saved knowledge.
193
299
 
194
300
  Ask one short group of missing human-only facts at a time, in plain language, with the relevant
@@ -213,8 +319,9 @@ by the tools. Do not promise an unavailable evidence, claims or plan write.
213
319
  ## Save durable brand answers, then verify them
214
320
 
215
321
  Read the selected brand with `brand_read { brand_id, sections: ["summary", "kit", "products", "learnings", "onboarding"] }`
216
- (fallback: `brand_get_context` with the same sections). Keep founder answers, user corrections,
217
- research and your own hypotheses distinct. Reuse matching saved answers; ask only about gaps.
322
+ (older clients: `brand_get_context` with the same sections, only when that tool is advertised).
323
+ Keep founder answers, user corrections, research and your own hypotheses distinct. Reuse
324
+ matching saved answers; ask only about gaps.
218
325
 
219
326
  When the user asks to remember a rule, answers a brand interview, or explicitly corrects a
220
327
  standing fact, save that answer in the same turn. The capture request authorizes those answers;
@@ -458,8 +565,8 @@ The `gooseworks` CLI sends authenticated requests (Bearer `GOOSEWORKS_API_KEY`)
458
565
 
459
566
  0. **Read the canonical brand context before substantive work**, 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").
460
567
  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.
461
- 2. **Before paid operations**, tell the user the estimated credit cost
462
- 3. **If a `gooseworks` command exits with "Not logged in"**: tell the user to run `npx gooseworks login`
568
+ 2. **Before paid operations**, tell the user the estimated credit cost and get their yes
569
+ 3. **If a `gooseworks` command exits with "Not logged in"**: tell the user to run `npx gooseworks login` (in a cloud sandbox or over SSH, use the code sign-in described in Setup)
463
570
  4. **Parse JSON responses** and present data in a readable format to the user
464
571
  5. **When running scripts**: save to `/tmp/gooseworks-scripts/`, install pip deps, then execute. NEVER pollute the user's project directory
465
572
  6. **Output files default to `~/Gooseworks/`** — always confirm with the user before saving