Skip to content

Embed realize-toolkit, align with Apr 2026 brand guardrails#2

Open
amitl-levi wants to merge 5 commits into
taboola:mainfrom
amitl-levi:fix/embed-toolkit-and-brand-guardrails
Open

Embed realize-toolkit, align with Apr 2026 brand guardrails#2
amitl-levi wants to merge 5 commits into
taboola:mainfrom
amitl-levi:fix/embed-toolkit-and-brand-guardrails

Conversation

@amitl-levi
Copy link
Copy Markdown

@amitl-levi amitl-levi commented Apr 29, 2026

Summary

  • Embeds the realize-toolkit knowledge layer into the plugin:
    os/guardrails.md (consolidated system-prompt), knowledge/ (10 topic MDs +
    manifest.json), scripts/brand-check.sh (linter).
  • Applies the Apr 2026 PMM brand guardrails across all plugin content.
  • Aligns operational thresholds with the toolkit (toolkit treated as
    authoritative source).
  • Consolidates the os/ layer from 4 files (guardrails, tone,
    orchestration, routing) into 1 (guardrails) — Claude Code skill-routing
    handles intent matching natively.
  • Removes redundancy: duplicate attribution rules folded into the global
    guardrails layer, and backlog.md removed (content lives in
    docs/realize-best-practices-gap.md Part 3).

Why

  • Brand: PMM published an updated brand-guardrails doc (Apr 2026) with
    feature renames and tightened banned positioning. Plugin now follows it.
  • Knowledge alignment: plugin had thresholds taken from public Taboola
    help articles that contradicted the internal realize-toolkit best practices.
    The toolkit is now the authoritative source.
  • Architecture: skills already handle intent routing natively, so a
    separate routing.md was redundant. Single source of truth =
    os/guardrails.md.

Key changes

Area Before After
Feature naming Realize Pixel; Marketplace Audiences; Realize 1P
Taboola Pixel; Taboola First Party Audiences
UI naming Realize console Realize UI
Brand naming "Taboola Realize" "Realize" alone
Click threshold (item-level diagnosis) 500–1000 clicks per item **100+
clicks per item**
Spend threshold (CPA/CVR diagnosis) $50/day flat **daily spend ≥ 8× CPA
goal**
Learning phase 7–10 days (mixed elsewhere) **7–10 days, consistent
everywhere**
Ads per campaign 3–10 4–6 (never more than 10)
Creative variations 5–10 per URL **3 distinct titles + 3 unique images
per campaign**
Fixed Bid budget 5× CPA daily / 150× monthly per client requirements
(manual)

Test plan

  • bash scripts/brand-check.sh passes (0 FAIL, 1 known false-positive
    WARN)
  • Open the plugin in Claude Code; verify the realize-analyst agent reads
    os/guardrails.md at session start
  • Ask "Which bid strategy for a new conversion campaign?" — should consult
    knowledge/bidding.md
  • Ask "CPA is 3× goal" — should activate optimize-campaign skill with
    the new toolkit-aligned thresholds
  • Verify Taboola Realize, Realize console, Marketplace Audiences no
    longer appear in any output

Notes for review

  • backlog.md deleted — content (with more detail, including UI paths) is in
    docs/realize-best-practices-gap.md Part 3.
  • Three pre-existing TODO: markers remain in CLAUDE.md, CONTRIBUTING.md,
    SECURITY.md — not introduced by this PR.
  • scripts/brand-check.sh allows item_id as a public MCP parameter (it
    remains banned as a schema column in the realize-toolkit's separate linter
    copy).
  • 26 files changed (13 new, 13 modified), +2467 / -63 lines.

Amit Levi and others added 5 commits April 30, 2026 00:25
- Embed toolkit knowledge layer: os/guardrails.md (consolidated system-prompt),
  knowledge/ (10 topic MDs + manifest.json), scripts/brand-check.sh.
- Apply PMM brand guardrails: feature renames (Realize Pixel → Taboola Pixel;
  Marketplace Audiences → Taboola First Party Audiences; first-party segments →
  Taboola First Party Audiences), UI naming (Realize console → Realize UI),
  brand naming (Taboola Realize → Realize).
- Align operational thresholds with toolkit: 100+ clicks per item (was 500–1000),
  daily spend >= 8x CPA goal (was \$50/day flat), 7–10 day learning phase,
  4–6 ads per campaign (was 3–10), 3 titles + 3 images per campaign
  (was 5–10 variations), Fixed Bid per client requirements.
- Enforce attribution + timeframe rule globally via os/guardrails.md (single
  source of truth) — every CPA/CVR/Leads/ROAS figure must specify both
  attribution basis (CT/VT/Total) and timeframe.
- Consolidate os/ from 4 files (guardrails, tone, orchestration, routing) to 1
  (guardrails) — Claude Code skill-routing handles intent matching natively.
- Adapt brand-check.sh: allow item_id as public MCP parameter; tighten
  console/dashboard regex; drop bare \bhip\b alternative.
- Remove redundant backlog.md — content now lives in
  docs/realize-best-practices-gap.md Part 3 as single source.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… to private layer

- Remove competitor comparison bullet ("No bias towards owned and operated
  inventory (Taboola does not own inventory like Meta and Google)") — names
  competitors, can't appear publicly.
- Move four sections from os/guardrails.md (public) to guardrails-private.md
  (internal layer), out of the plugin repo:
  - Preferred messaging direction (full section)
  - Framing rules (Tone subsection)
  - Emotional tone matching (Tone subsection)
  - What the assistant is not (Tone subsection)

These are internal directional rules — the assistant should follow them
silently, but they must not be visible in the public guardrails file shipped
with the plugin (Maayan flagged them as marketing-playbook content that
shouldn't be exposed externally).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three renames in upstream realize-mcp (../realize-mcp):
- get_all_campaigns  → list_campaigns
- get_campaign_items → list_items
- get_campaign_item  → get_item

Pure token swaps across 8 files. No new tools added, no skill files
created, no other content touched. Scope intentionally minimal —
follow-up needed for stale "11 tools" claim in
docs/realize-best-practices-gap.md and the write-tool framing in
agents/realize-analyst.md Tool Reference.

Verified: zero old tool-name hits via grep; JSON + YAML frontmatter
parse cleanly; scripts/brand-check.sh passes (0 FAIL, 1 pre-existing
WARN); 13/16 manual test scenarios PASS against live MCP, 3 require a
Claude Code session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add new skills/discovery/SKILL.md wrapping the 9 read-only "look it up"
tools the MCP exposes (search_geos, search_techno, search_audiences,
search_lookalike_audiences, search_contextual_segments,
search_publishers, search_conversion_rules, list_time_zones,
list_cta_types). Read-only - designed for inventory queries
("what audiences are configured?") and forward name -> opaque-code
resolution before campaign work in the Realize UI.

Agent Tool Reference grew from 9 to 18 read tools. Grouped:
Accounts / Campaigns / Items / Discovery / Reports / Auth.
Added discovery routing example + Core Responsibility taboola#2 line.
Tool-existence-boundary updated to acknowledge upstream's 4 write tools
exist but are intentionally not wired in this revision.

Updated CLAUDE.md architecture diagram (added discovery row, 18 reads,
4 upstream writes noted), docs/realize-best-practices-gap.md capability
baseline (folded Discovery), README skills table (new discovery row),
tests/test-scenarios.md (scenarios 12-16 verified live against MCP).

Version 0.1.0 -> 0.2.0. CHANGELOG 0.2.0 section consolidates prior
[Unreleased] entries (toolkit embed, brand alignment, threshold
updates, optimize-campaign skill) with this Phase 1 wiring.

Content for the discovery skill + scenarios 12-16 reused verbatim from
upstream c8e4a5b ("Align skills, agent, and tests with latest
realize-mcp tool set") since no toolkit/brand conflicts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add new skills/discovery/SKILL.md wrapping the 9 read-only "look it up"
tools the MCP exposes (search_geos, search_techno, search_audiences,
search_lookalike_audiences, search_contextual_segments,
search_publishers, search_conversion_rules, list_time_zones,
list_cta_types). Read-only - designed for inventory queries
("what audiences are configured?") and forward name -> opaque-code
resolution before campaign work in the Realize UI.

Agent Tool Reference grew from 9 to 18 read tools. Grouped:
Accounts / Campaigns / Items / Discovery / Reports / Auth.
Added discovery routing example + Core Responsibility taboola#2 line.
Tool-existence-boundary updated to acknowledge upstream's 4 write tools
exist but are intentionally not wired in this revision.

Updated CLAUDE.md architecture diagram (added discovery row, 18 reads,
4 upstream writes noted), docs/realize-best-practices-gap.md capability
baseline (folded Discovery), README skills table (new discovery row),
tests/test-scenarios.md (scenarios 12-16 verified live against MCP).

Version 0.1.0 -> 0.2.0. CHANGELOG 0.2.0 section consolidates prior
[Unreleased] entries (toolkit embed, brand alignment, threshold
updates, optimize-campaign skill) with this Phase 1 wiring.

Content for the discovery skill + scenarios 12-16 reused verbatim from
upstream c8e4a5b ("Align skills, agent, and tests with latest
realize-mcp tool set") since no toolkit/brand conflicts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants