@koda-sl/baker-cli 0.437.0 → 0.438.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 +7 -5
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3465,9 +3465,9 @@ Reading the scores: **`relevance`** (0–1) = match of the creative to your quer
|
|
|
3465
3465
|
|
|
3466
3466
|
### `baker winning-ads hooks|mechanisms|formats`
|
|
3467
3467
|
|
|
3468
|
-
Read the
|
|
3469
|
-
mechanism / static-format patterns that
|
|
3470
|
-
|
|
3468
|
+
Read the pattern rollup of the ad-dna corpus → `GET /api/ad-library/seed-catalog` — the hook /
|
|
3469
|
+
mechanism / static-format patterns that win **inside brands**, among the creatives of the segment you pass
|
|
3470
|
+
(`--platform`, `--awareness`, `--industry`; an unset one means any), keyed on the closed seeds/enums the
|
|
3471
3471
|
extractor emits (no clustering). Ground a creative in a **proven** pattern for the exact segment instead of
|
|
3472
3472
|
guessing. The rollup is recomputed daily.
|
|
3473
3473
|
|
|
@@ -3489,8 +3489,10 @@ baker winning-ads formats --awareness solution_aware --output md
|
|
|
3489
3489
|
| `--limit <n>` | Max keys 1–100 (default 20) |
|
|
3490
3490
|
| `--full` | Include the per-key segment breakdown |
|
|
3491
3491
|
|
|
3492
|
-
Each key returns `count`, `mean_winner_score
|
|
3493
|
-
|
|
3492
|
+
Each key returns `lift`, `brands_for`, `brands_against`, `count`, `mean_winner_score` and `winner_share`. The
|
|
3493
|
+
ranking is `lift`: how much more often a brand's creatives using the pattern kept running 60 days than that
|
|
3494
|
+
brand's others, one vote per brand, 0 until five brands have a verdict. `brands_for` / `brands_against` count
|
|
3495
|
+
the brands it won and lost inside. A common pattern is not a winning one: `count` is how often it is used.
|
|
3494
3496
|
|
|
3495
3497
|
### `baker winning-ads fit <adId>`
|
|
3496
3498
|
|
package/dist/cli.js
CHANGED
|
@@ -23605,6 +23605,13 @@ var patternSeedSchema = z5.object({
|
|
|
23605
23605
|
sum_winner_score: z5.number(),
|
|
23606
23606
|
mean_winner_score: z5.number(),
|
|
23607
23607
|
winner_share: z5.number(),
|
|
23608
|
+
// How the seed did inside the brands that used it, the order of the catalog:
|
|
23609
|
+
// the mean, over brands, of how much more often their creatives with the seed
|
|
23610
|
+
// ran 60 days than their others (0 until five brands have a verdict), and
|
|
23611
|
+
// how many brands it won and lost inside.
|
|
23612
|
+
lift: z5.number(),
|
|
23613
|
+
brands_for: z5.number(),
|
|
23614
|
+
brands_against: z5.number(),
|
|
23608
23615
|
// Per-segment counts (platform/awareness_stage/industry → value → n); present
|
|
23609
23616
|
// only on `--full`, so the response can stay lean by default.
|
|
23610
23617
|
breakdown_by: z5.record(z5.string(), z5.unknown()).nullable()
|
|
@@ -112413,9 +112420,12 @@ var refreshCommand = defineCommand311({
|
|
|
112413
112420
|
|
|
112414
112421
|
// src/commands/winning-ads/seeds.ts
|
|
112415
112422
|
import { defineCommand as defineCommand312 } from "citty";
|
|
112416
|
-
function
|
|
112423
|
+
function leanSeedRow(r) {
|
|
112417
112424
|
return {
|
|
112418
112425
|
key: r.key,
|
|
112426
|
+
lift: r.lift,
|
|
112427
|
+
brands_for: r.brands_for,
|
|
112428
|
+
brands_against: r.brands_against,
|
|
112419
112429
|
count: r.count,
|
|
112420
112430
|
mean_winner_score: r.mean_winner_score,
|
|
112421
112431
|
winner_share: r.winner_share
|
|
@@ -112456,7 +112466,7 @@ function makeSeedCommand(opts) {
|
|
|
112456
112466
|
const data = await apiGet("/api/ad-library/seed-catalog", params);
|
|
112457
112467
|
const rows = Array.isArray(data?.patterns) ? data.patterns : [];
|
|
112458
112468
|
const full = args8.full;
|
|
112459
|
-
const projected = rows.map((r) => full ? r :
|
|
112469
|
+
const projected = rows.map((r) => full ? r : leanSeedRow(r));
|
|
112460
112470
|
const output = args8.output || "json";
|
|
112461
112471
|
if (output === "json") {
|
|
112462
112472
|
writeJson({
|