gooseworks 0.6.0-dev.72.31ed8cb2 → 0.6.0-dev.75.504129db

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.
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAC9D,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,sEAAgE,CAAC;AACnG,oIAAoI;AACpI,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CAoBzF;AAuBD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAQ9D;AAmBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAYtG;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAMzD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,EAAE,EACpB,EAAE,KAAa,EAAE,iBAAyB,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClG,uBAAuB,EAAE,CAY3B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAiDf;AA0CD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAQtC"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAMjD,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAC9D,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,sEAAgE,CAAC;AACnG,oIAAoI;AACpI,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,iBAAiB,CAoBzF;AAuBD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAQ9D;AAmBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAYtG;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAMzD;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,EAAE,EACpB,EAAE,KAAa,EAAE,iBAAyB,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClG,uBAAuB,EAAE,CAY3B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAwFf;AAkDD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAS7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAQtC"}
@@ -44,7 +44,9 @@ exports.installManagedEntrySkills = installManagedEntrySkills;
44
44
  exports.installStandaloneSkill = installStandaloneSkill;
45
45
  exports.getInstalledSkills = getInstalledSkills;
46
46
  exports.removeAllSkills = removeAllSkills;
47
+ const standalone_packages_1 = require("./standalone-packages");
47
48
  const fs = __importStar(require("fs"));
49
+ const crypto_1 = require("crypto");
48
50
  const path = __importStar(require("path"));
49
51
  const os = __importStar(require("os"));
50
52
  const names_1 = require("./names");
@@ -175,46 +177,142 @@ async function installStandaloneSkill(slug, options = {}) {
175
177
  throw new Error(`invalid skill slug '${slug}'. Use a slug like goose-graphics.`);
176
178
  }
177
179
  const targetDir = path.join(skillsBase(), slug);
178
- if (fs.lstatSync(targetDir, { throwIfNoEntry: false }) && !options.overwriteModified) {
179
- // Legacy standalone stamps contain no file hashes. Do not guess whether a
180
- // saved recipe was edited; explicit replacement is required for those too.
180
+ const existingTarget = fs.lstatSync(targetDir, { throwIfNoEntry: false });
181
+ if (existingTarget && !options.overwriteModified) {
182
+ if (existingTarget.isSymbolicLink?.())
183
+ throw new Error(`Existing ${slug} package preserved. Replace the directory link yourself before installing a different package.`);
184
+ let replacement;
185
+ try {
186
+ const signal = AbortSignal.timeout(5000);
187
+ const source = githubSource();
188
+ const revision = await fetchGooseSkillsRevision(source, signal);
189
+ const index = JSON.parse((await fetchRawSkillFile(source.repo, 'skills-index.json', revision, signal)).toString('utf8'));
190
+ const retired = index.retired_skills?.find(entry => entry.slug === slug);
191
+ if (retired && /^[a-z0-9][a-z0-9-]*$/.test(retired.replacement) && index.skills.some(entry => entry.slug === retired.replacement))
192
+ replacement = retired.replacement;
193
+ }
194
+ catch { /* Offline or invalid metadata must never replace a local package. */ }
195
+ if (replacement)
196
+ throw new Error(`Skill "${slug}" was retired. Use "${replacement}" instead. Existing ${slug} package preserved.`);
181
197
  throw new Error(`Existing ${slug} package preserved. Back it up and pass --overwrite-modified to replace it; approved projects keep their pinned package.`);
182
198
  }
183
199
  const source = githubSource();
184
200
  const { tree, revision } = await fetchGooseSkillsTree(source);
185
- const { prefix, files } = findSkillFiles(tree, slug);
186
- if (files.length === 0) {
187
- const available = getAvailableSkillSlugs(tree);
188
- const suffix = available.length > 0 ? ` Available: ${available.join(', ')}` : '';
189
- throw new Error(`skill '${slug}' not found.${suffix}`);
190
- }
191
- const stagingDir = path.join(skillsBase(), `.${slug}.installing`);
192
- fs.rmSync(stagingDir, { recursive: true, force: true });
201
+ const indexBytes = await fetchRawSkillFile(source.repo, 'skills-index.json', revision);
202
+ const packages = (0, standalone_packages_1.resolveStandalonePackages)(JSON.parse(indexBytes.toString('utf8')), slug).map(entry => {
203
+ const files = tree.filter(file => file.type === 'blob' && file.path.startsWith(entry.prefix)).map(file => file.path);
204
+ if (!files.includes(`${entry.prefix}SKILL.md`))
205
+ throw new Error(`Incomplete package for ${entry.slug}`);
206
+ const target = path.join(skillsBase(), entry.slug);
207
+ return { ...entry, files, target };
208
+ });
209
+ fs.mkdirSync(skillsBase(), { recursive: true });
210
+ const stagingRoot = fs.mkdtempSync(path.join(skillsBase(), '.packages-installing-'));
211
+ const changed = [];
212
+ const reused = new Set();
193
213
  let completed = 0;
214
+ let cleanupSafe = true;
215
+ const total = packages.reduce((sum, entry) => sum + entry.files.length, 0);
194
216
  try {
195
- await withConcurrency(files, DOWNLOAD_CONCURRENCY, async (filePath) => {
196
- const relativePath = filePath.slice(prefix.length);
197
- const targetPath = path.join(stagingDir, relativePath);
198
- const downloaded = await fetchRawSkillFile(source.repo, filePath, revision);
199
- const buffer = (0, environment_1.getEnvironment)() === 'staging' && relativePath.endsWith('.md') ? Buffer.from((0, staging_content_1.stagingContent)(downloaded.toString('utf8'))) : downloaded;
200
- fs.mkdirSync(path.dirname(targetPath), { recursive: true });
201
- fs.writeFileSync(targetPath, buffer);
202
- completed++;
203
- options.onProgress?.({ downloaded: completed, total: files.length });
204
- });
205
- // Stamp the staged tree BEFORE it becomes the live dir, so a standalone
206
- // skill is recognisably ours on the next install (GOOSE-3191). Without a
207
- // stamp `removeAllSkills()` leaves it alone — safe, but it then goes stale
208
- // until the user re-installs it.
209
- fs.writeFileSync(path.join(stagingDir, names_1.STAMP_FILE), `standalone:${slug}`, 'utf-8');
210
- fs.writeFileSync(path.join(stagingDir, '.gooseworks-source.json'), JSON.stringify({ environment: (0, environment_1.getEnvironment)(), repository: source.repo, branch: source.ref, revision }) + '\n');
211
- fs.rmSync(targetDir, { recursive: true, force: true });
212
- fs.renameSync(stagingDir, targetDir);
217
+ for (const entry of packages) {
218
+ const stagingDir = path.join(stagingRoot, entry.slug);
219
+ const fileHashes = {};
220
+ await withConcurrency(entry.files, DOWNLOAD_CONCURRENCY, async (filePath) => {
221
+ const relativePath = filePath.slice(entry.prefix.length);
222
+ if (relativePath.split('/').some(part => !part || part === '..' || part === '.') || path.isAbsolute(relativePath))
223
+ throw new Error('Unsafe skill file path');
224
+ const targetPath = path.join(stagingDir, relativePath);
225
+ const downloaded = await fetchRawSkillFile(source.repo, filePath, revision);
226
+ const buffer = (0, environment_1.getEnvironment)() === 'staging' && relativePath.endsWith('.md') ? Buffer.from((0, staging_content_1.stagingContent)(downloaded.toString('utf8'))) : downloaded;
227
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
228
+ fs.writeFileSync(targetPath, buffer);
229
+ fileHashes[relativePath] = (0, crypto_1.createHash)('sha256').update(buffer).digest('hex');
230
+ options.onProgress?.({ downloaded: ++completed, total });
231
+ });
232
+ fs.writeFileSync(path.join(stagingDir, names_1.STAMP_FILE), `standalone:${entry.slug}`, 'utf-8');
233
+ fs.writeFileSync(path.join(stagingDir, '.gooseworks-source.json'), JSON.stringify({ environment: (0, environment_1.getEnvironment)(), repository: source.repo, branch: source.ref, revision, fileHashes }) + '\n');
234
+ }
235
+ // Compare real files after downloading the required revision. An unchanged
236
+ // shared dependency is reusable; edited, linked or untracked files are preserved.
237
+ for (const entry of packages) {
238
+ if (!fs.lstatSync(entry.target, { throwIfNoEntry: false }))
239
+ continue;
240
+ if (entry.slug !== slug && matchesStandalonePackage(entry.target, path.join(stagingRoot, entry.slug)))
241
+ reused.add(entry.slug);
242
+ else if (!options.overwriteModified)
243
+ throw new Error(`Existing ${entry.slug} package preserved. Back it up and pass --overwrite-modified to replace it.`);
244
+ }
245
+ // Commit only after every download succeeded; roll back if a rename fails.
246
+ for (const entry of packages) {
247
+ if (reused.has(entry.slug))
248
+ continue;
249
+ let backup = null;
250
+ if (fs.lstatSync(entry.target, { throwIfNoEntry: false })) {
251
+ backup = path.join(stagingRoot, `${entry.slug}.previous`);
252
+ fs.renameSync(entry.target, backup);
253
+ }
254
+ changed.push({ target: entry.target, backup });
255
+ fs.renameSync(path.join(stagingRoot, entry.slug), entry.target);
256
+ }
213
257
  }
214
258
  catch (error) {
215
- fs.rmSync(stagingDir, { recursive: true, force: true });
259
+ for (const entry of changed.reverse()) {
260
+ try {
261
+ fs.rmSync(entry.target, { recursive: true, force: true });
262
+ if (entry.backup)
263
+ fs.renameSync(entry.backup, entry.target);
264
+ }
265
+ catch {
266
+ cleanupSafe = false;
267
+ }
268
+ }
269
+ if (!cleanupSafe)
270
+ throw new Error(`Install failed. Recovery copies are preserved at ${stagingRoot}.`);
216
271
  throw error;
217
272
  }
273
+ finally {
274
+ if (cleanupSafe)
275
+ fs.rmSync(stagingRoot, { recursive: true, force: true });
276
+ }
277
+ }
278
+ function matchesStandalonePackage(target, staged) {
279
+ try {
280
+ if (!fs.lstatSync(target).isDirectory())
281
+ return false;
282
+ const existing = JSON.parse(fs.readFileSync(path.join(target, '.gooseworks-source.json'), 'utf8'));
283
+ const required = JSON.parse(fs.readFileSync(path.join(staged, '.gooseworks-source.json'), 'utf8'));
284
+ if (existing.repository !== required.repository || existing.environment !== required.environment || !existing.fileHashes)
285
+ return false;
286
+ if (fs.readFileSync(path.join(target, names_1.STAMP_FILE), 'utf8') !== fs.readFileSync(path.join(staged, names_1.STAMP_FILE), 'utf8'))
287
+ return false;
288
+ const actual = {};
289
+ const visit = (dir, prefix = '') => {
290
+ for (const name of fs.readdirSync(dir)) {
291
+ const relative = prefix + name;
292
+ const file = path.join(dir, name);
293
+ const stat = fs.lstatSync(file);
294
+ if (stat.isSymbolicLink())
295
+ return false;
296
+ if (stat.isDirectory()) {
297
+ if (!visit(file, relative + '/'))
298
+ return false;
299
+ }
300
+ else if (stat.isFile()) {
301
+ if (!prefix && [names_1.STAMP_FILE, '.gooseworks-source.json'].includes(name))
302
+ continue;
303
+ actual[relative] = (0, crypto_1.createHash)('sha256').update(fs.readFileSync(file)).digest('hex');
304
+ }
305
+ else
306
+ return false;
307
+ }
308
+ return true;
309
+ };
310
+ return visit(target) && Object.keys(actual).length === Object.keys(required.fileHashes).length &&
311
+ Object.entries(required.fileHashes).every(([name, hash]) => actual[name] === hash && existing.fileHashes[name] === hash);
312
+ }
313
+ catch {
314
+ return false;
315
+ }
218
316
  }
219
317
  async function withConcurrency(items, concurrency, worker) {
220
318
  let cursor = 0;
@@ -235,20 +333,6 @@ async function withConcurrency(items, concurrency, worker) {
235
333
  if (failure !== undefined)
236
334
  throw failure;
237
335
  }
238
- function findSkillFiles(tree, slug) {
239
- const skillMarker = `${slug}/SKILL.md`;
240
- const skillEntry = tree.find((entry) => entry.type === 'blob' && (entry.path === skillMarker || entry.path.endsWith(`/${skillMarker}`)));
241
- if (skillEntry) {
242
- const prefix = skillEntry.path.slice(0, -'SKILL.md'.length);
243
- return {
244
- prefix,
245
- files: tree
246
- .filter((entry) => entry.type === 'blob' && entry.path.startsWith(prefix))
247
- .map((entry) => entry.path),
248
- };
249
- }
250
- return { prefix: `${slug}/`, files: [] };
251
- }
252
336
  function getInstalledSkills() {
253
337
  if (!fs.existsSync(skillsBase()))
254
338
  return [];
@@ -278,9 +362,10 @@ function removeAllSkills() {
278
362
  fs.rmSync(path.join(skillsBase(), entry), { recursive: true, force: true });
279
363
  }
280
364
  }
281
- async function fetchGooseSkillsTree(source) {
365
+ async function fetchGooseSkillsRevision(source, signal) {
282
366
  // A tree SHA is not a commit SHA: raw.githubusercontent requires the commit.
283
- const commitResponse = await fetch(`https://api.github.com/repos/${source.repo}/commits/${source.ref.split('/').map(encodeURIComponent).join('/')}`);
367
+ const url = `https://api.github.com/repos/${source.repo}/commits/${source.ref.split('/').map(encodeURIComponent).join('/')}`;
368
+ const commitResponse = await (signal ? fetch(url, { signal }) : fetch(url));
284
369
  if (!commitResponse.ok) {
285
370
  if (commitResponse.status === 403 && commitResponse.headers.get('x-ratelimit-remaining') === '0')
286
371
  throw new Error(`GitHub API rate-limited this IP.${formatRateLimitWait(commitResponse.headers.get('x-ratelimit-reset'))} Set GITHUB_TOKEN to raise the limit.`);
@@ -289,7 +374,11 @@ async function fetchGooseSkillsTree(source) {
289
374
  const commit = await commitResponse.json();
290
375
  if (!commit.sha || !/^[a-f0-9]{40}$/.test(commit.sha))
291
376
  throw new Error('Invalid standalone skill commit');
292
- const response = await fetch(`https://api.github.com/repos/${source.repo}/git/trees/${commit.sha}?recursive=1`);
377
+ return commit.sha;
378
+ }
379
+ async function fetchGooseSkillsTree(source) {
380
+ const revision = await fetchGooseSkillsRevision(source);
381
+ const response = await fetch(`https://api.github.com/repos/${source.repo}/git/trees/${revision}?recursive=1`);
293
382
  if (!response.ok) {
294
383
  if (response.status === 403 && response.headers.get('x-ratelimit-remaining') === '0') {
295
384
  throw new Error(`GitHub API rate-limited this IP.${formatRateLimitWait(response.headers.get('x-ratelimit-reset'))} Set GITHUB_TOKEN to raise the limit.`);
@@ -299,7 +388,7 @@ async function fetchGooseSkillsTree(source) {
299
388
  const data = await response.json();
300
389
  if (data.truncated)
301
390
  throw new Error('Incomplete standalone skill tree');
302
- return { tree: data.tree || [], revision: commit.sha };
391
+ return { tree: data.tree || [], revision };
303
392
  }
304
393
  function formatRateLimitWait(resetHeader) {
305
394
  if (!resetHeader)
@@ -310,9 +399,9 @@ function formatRateLimitWait(resetHeader) {
310
399
  const minutes = Math.max(1, Math.ceil((resetMs - Date.now()) / 60_000));
311
400
  return ` Try again in about ${minutes} minute${minutes === 1 ? '' : 's'}.`;
312
401
  }
313
- async function fetchRawSkillFile(repo, filePath, revision) {
402
+ async function fetchRawSkillFile(repo, filePath, revision, signal) {
314
403
  const url = `https://raw.githubusercontent.com/${repo}/${revision}/${filePath.split('/').map(encodeURIComponent).join('/')}`;
315
- const response = await fetch(url);
404
+ const response = await (signal ? fetch(url, { signal }) : fetch(url));
316
405
  if (!response.ok) {
317
406
  throw new Error(`could not download ${filePath} from goose-skills (${response.status})`);
318
407
  }
@@ -321,17 +410,4 @@ async function fetchRawSkillFile(repo, filePath, revision) {
321
410
  throw new Error(`Unresolved Git LFS asset in ${filePath}`);
322
411
  return buffer;
323
412
  }
324
- function getAvailableSkillSlugs(tree) {
325
- const slugs = new Set();
326
- for (const entry of tree) {
327
- if (entry.type !== 'blob' || !entry.path.endsWith('/SKILL.md'))
328
- continue;
329
- const parts = entry.path.split('/');
330
- const slug = parts[parts.length - 2];
331
- if (slug) {
332
- slugs.add(slug);
333
- }
334
- }
335
- return [...slugs].sort();
336
- }
337
413
  //# sourceMappingURL=installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skills/installer.ts"],"names":[],"mappings":"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"}
@@ -59,14 +59,14 @@ function getMasterSkillContent() {
59
59
  name: gooseworks
60
60
  slug: gooseworks
61
61
  description: >
62
- GooseWorks growth coworker and router. Research brands, customers, competitors, creators,
63
- markets and prospects; make and study ads, product photos, graphics and video; search and
64
- scrape public web and social data; find and enrich leads. The one GooseWorks entry point
62
+ GooseWorks growth coworker and router. Research markets, competitors, audiences and
63
+ creators; plan campaigns; make ads, product photos, graphics, video and content; run paid
64
+ ads, email, SEO and social; find leads and contacts. The one GooseWorks entry point
65
65
  for brand growth, B2B, sales, research and GTM work. Also use it when the user mentions their
66
66
  GooseWorks brand's offers, prices, rules, audience or bestsellers, or wants copy for it
67
67
  (captions, posts, emails), so those facts reach its Marketing Brain.
68
68
  category: general
69
- version: 2.1.0
69
+ version: 2.2.0
70
70
  author: GooseWorks
71
71
  tags: [gooseworks, data, scraping, search, research, gtm, leads, prospecting, ads, video]
72
72
  ---
@@ -100,15 +100,15 @@ social data. Hand specialist work to its skill; do data work here.
100
100
  | If the user wants… | Route to | How |
101
101
  | --- | --- | --- |
102
102
  ${(0, routes_1.renderDomainRouteTable)()}
103
- | Anything else: scraping, research, lead lists, enrichment, any data lookup | (stay here) | Follow "Data work" below. |
103
+ | Anything else: find a skill or a single step | (stay here) | catalog_search, or \`gooseworks search\` in a terminal; see "Data work". |
104
104
 
105
- ## Brand growth skills
105
+ ## Marketing playbooks
106
106
 
107
- | Job | Skill |
107
+ | Job | Playbook |
108
108
  | --- | --- |
109
109
  ${(0, routes_1.renderBrandGrowthTable)()}
110
110
 
111
- Fetch a skill before following it, and hand it the brand you read.
111
+ Fetch a playbook before following it, and hand it the brand you read.
112
112
 
113
113
  ## Data work
114
114
 
@@ -49,9 +49,9 @@ export declare const DOMAIN_ROUTES: DomainRoute[];
49
49
  */
50
50
  export declare const UNROUTED_ENTRY_SKILLS: Readonly<Record<string, string>>;
51
51
  /**
52
- * Brand Growth routes — the outcome skills in the `brand-growth` collection.
53
- * Must stay in sync with `goose-skills/collections/brand-growth/routes.json`,
54
- * which is derived from this list.
52
+ * Brand Growth routes — the marketing playbooks in the `brand-growth` collection,
53
+ * one job and one playbook per row. Must stay in sync with
54
+ * `goose-skills/collections/brand-growth/routes.json`, which is derived from this list.
55
55
  */
56
56
  export declare const BRAND_GROWTH_ROUTES: BrandGrowthRoute[];
57
57
  /** Every skill slug named by any route, deduped and sorted. */
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,aAAa;AACvB,+DAA+D;AAC7D,OAAO;AACT,+EAA+E;GAC7E,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EA+BtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAkBjD,CAAC;AAEF,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAK9C;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CASA;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C;AAED,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,aAAa;AACvB,+DAA+D;AAC7D,OAAO;AACT,+EAA+E;GAC7E,OAAO,CAAC;AAEZ,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,EA+BtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAejD,CAAC;AAEF,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAK9C;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAInD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CASA;AAED,gFAAgF;AAChF,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C;AAED,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C"}
@@ -32,7 +32,7 @@ exports.renderBrandGrowthTable = renderBrandGrowthTable;
32
32
  exports.DOMAIN_ROUTES = [
33
33
  {
34
34
  skill: 'goose-ads',
35
- when: 'Make, edit or study image ads: from a template, a source ad or the brand\'s products; why a campaign underperforms; competitor ads, angles and hooks',
35
+ when: 'Change one ad already made in GooseWorks (an edit, a new size, its tags or rating), or save the customer\'s image as a template. New image ads: `make-static-ads`',
36
36
  how: 'Open it with catalog_fetch in a chat app, or the installed copy in a terminal.',
37
37
  delivery: 'entry',
38
38
  },
@@ -70,28 +70,25 @@ exports.UNROUTED_ENTRY_SKILLS = {
70
70
  'goose-video-local': 'One line: a next_step that gives the kit command says who starts it.',
71
71
  };
72
72
  /**
73
- * Brand Growth routes — the outcome skills in the `brand-growth` collection.
74
- * Must stay in sync with `goose-skills/collections/brand-growth/routes.json`,
75
- * which is derived from this list.
73
+ * Brand Growth routes — the marketing playbooks in the `brand-growth` collection,
74
+ * one job and one playbook per row. Must stay in sync with
75
+ * `goose-skills/collections/brand-growth/routes.json`, which is derived from this list.
76
76
  */
77
77
  exports.BRAND_GROWTH_ROUTES = [
78
- { job: 'Brand foundation', skills: ['brand-research'] },
79
- { job: 'Competitor ads', skills: ['competitor-ad-intelligence'] },
80
- { job: 'Customer language and angles', skills: ['comment-mining', 'ad-angle-miner'] },
81
- { job: 'Competitor social content', skills: ['competitor-social-research'] },
82
- { job: 'Audience definition', skills: ['audience-research'] },
83
- { job: 'Creator discovery and evaluation', skills: ['influencer-prospecting', 'creator-profile-teardown'] },
84
- { job: 'Trends and outlier posts', skills: ['trend-discovery', 'outlier-post-finder'] },
85
- { job: 'Social listening and product demand', skills: ['social-listening-brief', 'product-demand-research'] },
86
- { job: 'Long-form source material (calls, podcasts, videos)', skills: ['transcript-intelligence'] },
87
- {
88
- job: 'Meta performance, policy, and landing-page match',
89
- skills: ['meta-ads-analyzer', 'meta-ad-policy-checker', 'ad-to-landing-page-auditor'],
90
- },
91
- { job: 'Static ads', skills: ['goose-ads', 'remix-graphic-ad-from-reference'] },
92
- { job: 'Product photos', skills: ['goose-product-photos', 'product-photoshoot'] },
93
- { job: 'Written content and repurposing', skills: ['content-repurposing'] },
94
- { job: 'Graphics and animation', skills: ['goose-graphics', 'animate-image'] },
78
+ { job: 'Not sure what to do first', skills: ['where-to-start'] },
79
+ { job: 'Market size, trends, what people say, brand watch', skills: ['research-market'] },
80
+ { job: 'What rivals run and what works', skills: ['research-competitors'] },
81
+ { job: 'Who buys and why; lists of companies and people', skills: ['research-audience'] },
82
+ { job: 'Cold emails and LinkedIn messages', skills: ['write-outreach'] },
83
+ { job: 'A campaign plan from a budget and a date', skills: ['plan-campaign'] },
84
+ { job: 'New static image ads', skills: ['make-static-ads'] },
85
+ { job: 'Launch, scale or pause paid ads', skills: ['run-paid-campaigns'] },
86
+ { job: 'What worked; performance reports', skills: ['analyze-performance'] },
87
+ { job: 'Email flows and sends to subscribers', skills: ['email-lifecycle'] },
88
+ { job: 'SEO and AI-answer visibility', skills: ['improve-search-visibility'] },
89
+ { job: 'Influencers and UGC creators', skills: ['work-with-creators'] },
90
+ { job: 'One post, article or newsletter', skills: ['make-content'] },
91
+ { job: 'Posting calendar and social plan', skills: ['run-organic-social'] },
95
92
  ];
96
93
  /** Every skill slug named by any route, deduped and sorted. */
97
94
  function getRoutedSkillSlugs() {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/skills/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface StandaloneIndex {
2
+ skills: Array<{
3
+ slug: string;
4
+ path: string;
5
+ metadata?: {
6
+ requires_skills?: string[];
7
+ };
8
+ }>;
9
+ retired_skills?: Array<{
10
+ slug: string;
11
+ replacement: string;
12
+ }>;
13
+ }
14
+ /** Resolve the complete package before downloading or replacing any local file. */
15
+ export declare function resolveStandalonePackages(index: StandaloneIndex, slug: string): Array<{
16
+ slug: string;
17
+ prefix: string;
18
+ }>;
19
+ //# sourceMappingURL=standalone-packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-packages.d.ts","sourceRoot":"","sources":["../../src/skills/standalone-packages.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IACzF,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,mFAAmF;AACnF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBvH"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveStandalonePackages = resolveStandalonePackages;
4
+ /** Resolve the complete package before downloading or replacing any local file. */
5
+ function resolveStandalonePackages(index, slug) {
6
+ const retired = index.retired_skills?.find(entry => entry.slug === slug);
7
+ if (retired)
8
+ throw new Error(`Skill "${slug}" was retired. Use "${retired.replacement}" instead.`);
9
+ if (!Array.isArray(index.skills) || index.skills.length === 0)
10
+ throw new Error('Incomplete skill index');
11
+ const skills = new Map(index.skills.map(skill => [skill.slug, skill]));
12
+ const result = [];
13
+ const visiting = new Set();
14
+ const done = new Set();
15
+ function visit(name) {
16
+ if (done.has(name) || visiting.has(name))
17
+ return;
18
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(name))
19
+ throw new Error(`Invalid skill dependency: ${name}`);
20
+ const skill = skills.get(name);
21
+ if (!skill)
22
+ throw new Error(`Required skill "${name}" is missing from the catalog`);
23
+ if (!/^(?:skills|marketing-agent)\//.test(skill.path) || skill.path.split('/').some(part => !part || part === '..' || part === '.') || !skill.path.endsWith(`/${name}`))
24
+ throw new Error(`Invalid package path for ${name}`);
25
+ visiting.add(name);
26
+ for (const dependency of skill.metadata?.requires_skills || [])
27
+ visit(dependency);
28
+ visiting.delete(name);
29
+ done.add(name);
30
+ result.push({ slug: name, prefix: `${skill.path}/` });
31
+ }
32
+ visit(slug);
33
+ return result;
34
+ }
35
+ //# sourceMappingURL=standalone-packages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-packages.js","sourceRoot":"","sources":["../../src/skills/standalone-packages.ts"],"names":[],"mappings":";;AAMA,8DAsBC;AAvBD,mFAAmF;AACnF,SAAgB,yBAAyB,CAAC,KAAsB,EAAE,IAAY;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACzE,IAAI,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,uBAAuB,OAAO,CAAC,WAAW,YAAY,CAAC,CAAC;IACnG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACzG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,MAAM,GAA4C,EAAE,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,SAAS,KAAK,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACjD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,+BAA+B,CAAC,CAAC;QACpF,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QAC7N,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE;YAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAClF,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gooseworks",
3
- "version": "0.6.0-dev.72.31ed8cb2",
3
+ "version": "0.6.0-dev.75.504129db",
4
4
  "description": "GooseWorks CLI — give your coding agent real data tools",
5
5
  "bin": {
6
6
  "gooseworks": "./dist/index.js"
@@ -77,7 +77,7 @@
77
77
  "homepage": "https://gooseworks.ai",
78
78
  "author": "GooseWorks <help@gooseworks.ai>",
79
79
  "gooseworksRelease": {
80
- "commit": "31ed8cb27029fbc8542a9f08a4d2af62f6f7a0c9",
80
+ "commit": "504129dbcf03731cbe624945e131a718f060b6fb",
81
81
  "branch": "dev"
82
82
  }
83
83
  }
@@ -2,14 +2,14 @@
2
2
  name: gooseworks
3
3
  slug: gooseworks
4
4
  description: >
5
- GooseWorks growth coworker and router. Research brands, customers, competitors, creators,
6
- markets and prospects; make and study ads, product photos, graphics and video; search and
7
- scrape public web and social data; find and enrich leads. The one GooseWorks entry point
5
+ GooseWorks growth coworker and router. Research markets, competitors, audiences and
6
+ creators; plan campaigns; make ads, product photos, graphics, video and content; run paid
7
+ ads, email, SEO and social; find leads and contacts. The one GooseWorks entry point
8
8
  for brand growth, B2B, sales, research and GTM work. Also use it when the user mentions their
9
9
  GooseWorks brand's offers, prices, rules, audience or bestsellers, or wants copy for it
10
10
  (captions, posts, emails), so those facts reach its Marketing Brain.
11
11
  category: general
12
- version: 2.1.0
12
+ version: 2.2.0
13
13
  author: GooseWorks
14
14
  tags: [gooseworks, data, scraping, search, research, gtm, leads, prospecting, ads, video]
15
15
  ---
@@ -42,33 +42,33 @@ social data. Hand specialist work to its skill; do data work here.
42
42
 
43
43
  | If the user wants… | Route to | How |
44
44
  | --- | --- | --- |
45
- | Make, edit or study image ads: from a template, a source ad or the brand's products; why a campaign underperforms; competitor ads, angles and hooks | **`goose-ads`** | Open it with catalog_fetch in a chat app, or the installed copy in a terminal. |
45
+ | Change one ad already made in GooseWorks (an edit, a new size, its tags or rating), or save the customer's image as a template. New image ads: `make-static-ads` | **`goose-ads`** | Open it with catalog_fetch in a chat app, or the installed copy in a terminal. |
46
46
  | Charts, infographics, slides, social graphics, branded visual designs from a style or format | **`goose-graphics`** | Fetch it with catalog_fetch, or `gooseworks fetch goose-graphics` in a terminal. |
47
47
  | Any **video**: a video ad from a style, an original video from a brief or a reference video, or a video already started | **`goose-video`** | Explicit custom skips the picker; otherwise watch the reference, read the brand and compare style constraints. |
48
48
  | Make **product photos**: studio, lifestyle, marketplace, social or on a model | **`goose-product-photos`** | Open it with catalog_fetch in a chat app, or the installed copy in a terminal. |
49
49
  | Animate an approved static ad or product image | **`animate-image`** | Fetch it with catalog_fetch, or `gooseworks fetch animate-image` in a terminal. |
50
- | Anything else: scraping, research, lead lists, enrichment, any data lookup | (stay here) | Follow "Data work" below. |
50
+ | Anything else: find a skill or a single step | (stay here) | catalog_search, or `gooseworks search` in a terminal; see "Data work". |
51
51
 
52
- ## Brand growth skills
52
+ ## Marketing playbooks
53
53
 
54
- | Job | Skill |
54
+ | Job | Playbook |
55
55
  | --- | --- |
56
- | Brand foundation | `brand-research` |
57
- | Competitor ads | `competitor-ad-intelligence` |
58
- | Customer language and angles | `comment-mining`, `ad-angle-miner` |
59
- | Competitor social content | `competitor-social-research` |
60
- | Audience definition | `audience-research` |
61
- | Creator discovery and evaluation | `influencer-prospecting`, `creator-profile-teardown` |
62
- | Trends and outlier posts | `trend-discovery`, `outlier-post-finder` |
63
- | Social listening and product demand | `social-listening-brief`, `product-demand-research` |
64
- | Long-form source material (calls, podcasts, videos) | `transcript-intelligence` |
65
- | Meta performance, policy, and landing-page match | `meta-ads-analyzer`, `meta-ad-policy-checker`, `ad-to-landing-page-auditor` |
66
- | Static ads | `goose-ads`, `remix-graphic-ad-from-reference` |
67
- | Product photos | `goose-product-photos`, `product-photoshoot` |
68
- | Written content and repurposing | `content-repurposing` |
69
- | Graphics and animation | `goose-graphics`, `animate-image` |
70
-
71
- Fetch a skill before following it, and hand it the brand you read.
56
+ | Not sure what to do first | `where-to-start` |
57
+ | Market size, trends, what people say, brand watch | `research-market` |
58
+ | What rivals run and what works | `research-competitors` |
59
+ | Who buys and why; lists of companies and people | `research-audience` |
60
+ | Cold emails and LinkedIn messages | `write-outreach` |
61
+ | A campaign plan from a budget and a date | `plan-campaign` |
62
+ | New static image ads | `make-static-ads` |
63
+ | Launch, scale or pause paid ads | `run-paid-campaigns` |
64
+ | What worked; performance reports | `analyze-performance` |
65
+ | Email flows and sends to subscribers | `email-lifecycle` |
66
+ | SEO and AI-answer visibility | `improve-search-visibility` |
67
+ | Influencers and UGC creators | `work-with-creators` |
68
+ | One post, article or newsletter | `make-content` |
69
+ | Posting calendar and social plan | `run-organic-social` |
70
+
71
+ Fetch a playbook before following it, and hand it the brand you read.
72
72
 
73
73
  ## Data work
74
74
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "package": "gooseworks",
3
- "version": "0.6.0-dev.72.31ed8cb2",
3
+ "version": "0.6.0-dev.75.504129db",
4
4
  "entries": {
5
- "gooseworks": "bfe2e3b4ba7115f627b7bead99273dfd608180f033538121e233c98ff688d7dc",
5
+ "gooseworks": "b282d7a42b794b8061b7b3947f857adadba6587e03bff951528dc912dac1d14b",
6
6
  "goose-ads": "cec58f726db71c51173568320550d73afaa49e284f8a770ba8e964176d1af72a",
7
7
  "goose-video": "3419174c9e984e974b7486a088df480b44fcc2004ad4dcadc9c50bce36d7fdf2",
8
8
  "goose-video-local": "3c8c8aecbfe3d8e58e6393e28dc67dc36f9d4b8dcfb1603f8bc442786ce839ee",
@@ -4,7 +4,7 @@
4
4
  "domain_routes": [
5
5
  {
6
6
  "skill": "goose-ads",
7
- "when": "Make, edit or study image ads: from a template, a source ad or the brand's products; why a campaign underperforms; competitor ads, angles and hooks",
7
+ "when": "Change one ad already made in GooseWorks (an edit, a new size, its tags or rating), or save the customer's image as a template. New image ads: `make-static-ads`",
8
8
  "how": "Open it with catalog_fetch in a chat app, or the installed copy in a terminal.",
9
9
  "delivery": "entry"
10
10
  },
@@ -35,123 +35,109 @@
35
35
  ],
36
36
  "brand_growth_routes": [
37
37
  {
38
- "job": "Brand foundation",
38
+ "job": "Not sure what to do first",
39
39
  "skills": [
40
- "brand-research"
40
+ "where-to-start"
41
41
  ]
42
42
  },
43
43
  {
44
- "job": "Competitor ads",
44
+ "job": "Market size, trends, what people say, brand watch",
45
45
  "skills": [
46
- "competitor-ad-intelligence"
46
+ "research-market"
47
47
  ]
48
48
  },
49
49
  {
50
- "job": "Customer language and angles",
50
+ "job": "What rivals run and what works",
51
51
  "skills": [
52
- "comment-mining",
53
- "ad-angle-miner"
52
+ "research-competitors"
54
53
  ]
55
54
  },
56
55
  {
57
- "job": "Competitor social content",
56
+ "job": "Who buys and why; lists of companies and people",
58
57
  "skills": [
59
- "competitor-social-research"
58
+ "research-audience"
60
59
  ]
61
60
  },
62
61
  {
63
- "job": "Audience definition",
62
+ "job": "Cold emails and LinkedIn messages",
64
63
  "skills": [
65
- "audience-research"
64
+ "write-outreach"
66
65
  ]
67
66
  },
68
67
  {
69
- "job": "Creator discovery and evaluation",
68
+ "job": "A campaign plan from a budget and a date",
70
69
  "skills": [
71
- "influencer-prospecting",
72
- "creator-profile-teardown"
70
+ "plan-campaign"
73
71
  ]
74
72
  },
75
73
  {
76
- "job": "Trends and outlier posts",
74
+ "job": "New static image ads",
77
75
  "skills": [
78
- "trend-discovery",
79
- "outlier-post-finder"
76
+ "make-static-ads"
80
77
  ]
81
78
  },
82
79
  {
83
- "job": "Social listening and product demand",
80
+ "job": "Launch, scale or pause paid ads",
84
81
  "skills": [
85
- "social-listening-brief",
86
- "product-demand-research"
82
+ "run-paid-campaigns"
87
83
  ]
88
84
  },
89
85
  {
90
- "job": "Long-form source material (calls, podcasts, videos)",
86
+ "job": "What worked; performance reports",
91
87
  "skills": [
92
- "transcript-intelligence"
88
+ "analyze-performance"
93
89
  ]
94
90
  },
95
91
  {
96
- "job": "Meta performance, policy, and landing-page match",
92
+ "job": "Email flows and sends to subscribers",
97
93
  "skills": [
98
- "meta-ads-analyzer",
99
- "meta-ad-policy-checker",
100
- "ad-to-landing-page-auditor"
94
+ "email-lifecycle"
101
95
  ]
102
96
  },
103
97
  {
104
- "job": "Static ads",
98
+ "job": "SEO and AI-answer visibility",
105
99
  "skills": [
106
- "goose-ads",
107
- "remix-graphic-ad-from-reference"
100
+ "improve-search-visibility"
108
101
  ]
109
102
  },
110
103
  {
111
- "job": "Product photos",
104
+ "job": "Influencers and UGC creators",
112
105
  "skills": [
113
- "goose-product-photos",
114
- "product-photoshoot"
106
+ "work-with-creators"
115
107
  ]
116
108
  },
117
109
  {
118
- "job": "Written content and repurposing",
110
+ "job": "One post, article or newsletter",
119
111
  "skills": [
120
- "content-repurposing"
112
+ "make-content"
121
113
  ]
122
114
  },
123
115
  {
124
- "job": "Graphics and animation",
116
+ "job": "Posting calendar and social plan",
125
117
  "skills": [
126
- "goose-graphics",
127
- "animate-image"
118
+ "run-organic-social"
128
119
  ]
129
120
  }
130
121
  ],
131
122
  "skills": [
132
- "ad-angle-miner",
133
- "ad-to-landing-page-auditor",
123
+ "analyze-performance",
134
124
  "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",
125
+ "email-lifecycle",
142
126
  "goose-ads",
143
127
  "goose-graphics",
144
128
  "goose-product-photos",
145
129
  "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"
130
+ "improve-search-visibility",
131
+ "make-content",
132
+ "make-static-ads",
133
+ "plan-campaign",
134
+ "research-audience",
135
+ "research-competitors",
136
+ "research-market",
137
+ "run-organic-social",
138
+ "run-paid-campaigns",
139
+ "where-to-start",
140
+ "work-with-creators",
141
+ "write-outreach"
156
142
  ]
157
143
  }