@koda-sl/baker-cli 0.163.0 → 0.165.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 +12 -2
- package/dist/cli.js +1596 -1405
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -502,7 +502,17 @@ Reference not-yet-created resources with `g_temp_*` refs returned by earlier `cr
|
|
|
502
502
|
baker ads google budgets create --customer-id 1234567890 --name "Search budget" --amount 50
|
|
503
503
|
# → { ref: "g_temp_ab12", ... }
|
|
504
504
|
baker ads google campaigns create --customer-id 1234567890 --name "Brand — Search" \
|
|
505
|
-
--channel-type SEARCH --budget-ref g_temp_ab12 --bidding-strategy MANUAL_CPC
|
|
505
|
+
--channel-type SEARCH --budget-ref g_temp_ab12 --bidding-strategy MANUAL_CPC \
|
|
506
|
+
--geo-target-type PRESENCE
|
|
507
|
+
# --geo-target-type is the campaign's location option: PRESENCE (only people in your targeted
|
|
508
|
+
# locations) or PRESENCE_OR_INTEREST (also people interested in them). Google applies
|
|
509
|
+
# PRESENCE_OR_INTEREST when the flag is omitted, so pass PRESENCE for local/in-store/service-area
|
|
510
|
+
# campaigns; --negative-geo-target-type does the same for excluded locations.
|
|
511
|
+
# Campaign URL options stage on create and update: --final-url-suffix (bare query params),
|
|
512
|
+
# --tracking-template "https://tracker.example/?url={lpurl}" (must carry {lpurl}), and
|
|
513
|
+
# --custom-param key=value (repeatable, up to 8; --clear-custom-params empties the set).
|
|
514
|
+
# "" clears the suffix or template back to the account value. The ACCOUNT level is not
|
|
515
|
+
# stageable — Google writes it through a different service than the atomic publish batch.
|
|
506
516
|
# New campaigns are declared as NOT containing EU political advertising (Google requires the
|
|
507
517
|
# declaration on every create); pass --eu-political-ads only when the campaign does contain it.
|
|
508
518
|
# On update, --eu-political-ads / --eu-political-ads=false corrects an existing declaration.
|
|
@@ -4802,7 +4812,7 @@ baker landing critique spring-offer summer-offer claude # score three landings
|
|
|
4802
4812
|
|
|
4803
4813
|
- **Takes several slugs at once.** `data.landings` is always an array with one entry per slug (`{ slug, overall, counts, dimensions, findings }`). For a single slug those fields are also spread at the top of `data`, so existing one-landing readers are unaffected. A wrong slug anywhere in the batch fails the whole call before any landing is scored.
|
|
4804
4814
|
- **Advisory by design — findings never fail it.** A finding is guidance, not a gate; the command errors (exit 2) only on a wrong slug (`NOT_FOUND` / `INVALID_SLUG`, with `error.fix.availableSlugs`).
|
|
4805
|
-
- **
|
|
4815
|
+
- **The brand is the allowlist.** A font, hue, or ground the client's brand commits is a decision, not a tell — matched values downgrade to advisory `brandDrift` so the critic never fights a real brand. The allowlist reads `src/brand/tokens.json` (the canonical machine-readable brand token file) when present; workspaces that predate it fall back to scanning the `@theme` block in `src/styles/global.css` (hex or oklch) plus `src/brand/BRAND.md` prose.
|
|
4806
4816
|
- **Records a freshness snapshot** to `.cache/landing-critique/<slug>.json` (the source hash it scored). The publish quality gate reads it to enforce that every changed landing was critiqued and ships no block-tier tell. Re-run after edits so the snapshot stays fresh.
|
|
4807
4817
|
|
|
4808
4818
|
- **AI writing tells are scored in the `copy` family, in English and Spanish.** Beyond buzzwords and em-dash density, the critic detects the constructions models over-produce: the negation pivot ("it's not just X, it's Y" / "no se trata solo de X, sino de Y"), fake-candid openers ("Honestly?", "La verdad es que"), participles hung off a comma (", ensuring…", ", permitiendo…"), copula avoidance ("serves as", "cuenta con"), vague attributions, signposting, filler, hollow closers, false ranges, staccato runs, Title Case headings, and chatbot framing that leaked into the page. Most need a **cluster** (≥2 on the page) before they fire — the source guidance is explicit that isolated tells prove nothing — with two deliberate exceptions: chatbot framing fires at one, and curly quotes are not detected at all, since every editor inserts them automatically. Nothing in this family is block-tier, so it never fails the publish gate. Pattern set adapted from Wikipedia's "Signs of AI writing" (WikiProject AI Cleanup).
|