CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dynamic-content-personalizer

Use when the user asks to "personalize the email", "add merge tags / dynamic content", "set up conditional blocks per segment", or "make first-name and product-recommendation fields fall back safely"; produces a merge-tag map with per-tag fallbacks, conditional-block rules with per-segment variations, a fallback-safety audit, and a PII guard on what may render, informing the SEND E (Engagement/personalization) dimension. Not for building the segments — use list-segment-builder; not for writing the base copy — use email-creative-builder; not for scoring EQS or running vetoes — use email-quality-auditor. 邮件个性化/合并标签/条件内容块/兜底默认值

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, well-sequenced instruction skill: the workflow has real validation (the fallback-safety audit) with feedback loops and a done-checklist, and the guidance is concrete enough to execute without code. The main cost is redundancy — the scope guard and next-skill routing are each stated twice, inflating the body without adding information.

Suggestions

Remove the second near-verbatim 'Scope guard' paragraph after the Decision Gate — the opening Scope guard already states the three exclusions with links to the owning skills.

Collapse 'Next Best Skill' and the Skill Contract's 'Primary next skill' into one routing section; the termination rules can live there rather than being reintroduced with the routing list.

Trim the 'Reference Materials' list to entries not already linked inline (or drop the inline duplicates) so each cross-reference appears exactly once.

DimensionReasoningScore

Conciseness

The body is dense with genuinely skill-specific knowledge (fill-rates deciding fallbacks, catch-all else requirement, PII categories, worst-case audit), but the scope-guard paragraph appears twice nearly verbatim (the opening 'Scope guard' and the repeat after the Decision Gate), 'Next Best Skill' duplicates the Skill Contract's 'Primary next skill' line, and 'Reference Materials' re-lists links already given inline. This is more than the 'minor instances' of the 4 anchor — whole sections are restated — yet the content is not padded with things Claude already knows, so it sits at the 'mostly efficient but could be tightened' anchor.

3 / 5

Actionability

As an instruction-only skill it needs concrete guidance rather than code, and it delivers: executable fallback syntax ({{first_name | "there"}} → "Hi there,"), named PII fields to block (full name, email, phone, order ID), concrete segment examples (champions → loyalty offer), exact save paths (memory/email/dynamic-content-personalizer/YYYY-MM-DD-...-personalization.md), and three worked Quick Start invocations. Fully actionable for the common cases, matching the 5 anchor; it is not a 4 because no key execution detail is left implicit.

5 / 5

Workflow Clarity

Steps 1–9 are clearly sequenced with an explicit validation checkpoint — step 6 'Run the fallback-safety audit... walk the whole template as if every personalized field were empty' — plus a NEEDS_INPUT flagging loop for unmapped tags (step 2), a stop-and-ask Decision Gate table, and a 'Done when' checklist with hard failure conditions ('No fallback = fail'). This is the 5 anchor's 'explicit validation steps; feedback loops; checklists'; the 4 anchor's 'minor validation gaps' does not apply.

5 / 5

Progressive Disclosure

The bundle is a single SKILL.md with no references/, scripts/, or assets/ directories; the body is well-sectioned and all external pointers (send-benchmark.md, skill-contract.md, CONNECTORS.md, SECURITY.md, sibling skills) are one level deep and clearly labeled in Reference Materials with a one-line description each. It falls short of the 5 anchor because the body is ~80 lines with a large inline instruction block that a leaner overview plus a detail file could serve, and several referenced paths live outside the bundle where their existence cannot be verified — 'minor organization gaps' per the 4 anchor, not the buried/nested-reference failures of 3.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete trigger phrases, four specific deliverables, explicit what/when, and negative boundaries naming sibling skills. It is on the long side, but every clause carries information (triggers, outputs, exclusions) rather than padding, so the verbosity penalty does not apply.

DimensionReasoningScore

Specificity

The description lists four concrete deliverables — "a merge-tag map with per-tag fallbacks, conditional-block rules with per-segment variations, a fallback-safety audit, and a PII guard on what may render" — giving comprehensive, specific coverage of what the skill produces. It matches the 'multiple specific concrete actions; comprehensive coverage' anchor, and does not fall below it since nothing in the domain is left to inference.

5 / 5

Completeness

It explicitly answers both questions with concrete trigger phrases: 'Use when the user asks to "personalize the email"...' (when) and 'produces a merge-tag map... a PII guard' (what). This is the anchor-5 pattern ('clearly and explicitly answers both what AND when with concrete trigger phrases'); it is not the 4 anchor because the when-clause is maximally explicit rather than merely present.

5 / 5

Trigger Term Quality

It quotes natural user phrasings verbatim — "personalize the email", "add merge tags / dynamic content", "set up conditional blocks per segment", "make first-name and product-recommendation fields fall back safely" — covering synonyms (merge tags / dynamic content) and appending Chinese-language equivalents ("邮件个性化/合并标签/条件内容块/兜底默认值"). This matches the comprehensive-synonyms anchor; only obscure variants (e.g. 'personalization tokens') are absent, which does not drop it to 4.

5 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (personalization layer only) and preempts mis-triggering with three explicit exclusions naming the owning skills — "Not for building the segments — use list-segment-builder; not for writing the base copy — use email-creative-builder; not for scoring EQS or running vetoes — use email-quality-auditor". Minimal conflict risk; the 4 anchor's 'minor overlap risk' does not apply.

5 / 5

Total

20

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 30 suspicious

Warning

Total

13

/

16

Passed

Repository

aaron-he-zhu/aaron-marketing-skills

Path

email/engage/dynamic-content-personalizer/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.