agentleFS
EditorialOSEditorialOS/email-marketing-manager/skills/client-context/SKILL.md

client-context

Skill0 starsChanged 44 days agoApache-2.0View on GitHub

Reads the client's Box folder and Cloudinary library and builds structured newsletter context. Extracts brand voice, audience segments, past newsletter patterns, performance data, and available images. Called automatically at the start of every command. Shared architecture with Editorial OS — same document folder, different lens.

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. EditorialOS/pinterest-marketing-strategist★ 2same name
    2. EditorialOS/editorial-os★ 0same name
    3. itsKayumkhan/claude-client-context★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository2 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

13 rules. 0 are common, 12 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the client's real documents and build the context layer that makes every newsletter client-specific instead of generic.

    line 10
  2. Very specific:

    Every /email-marketing-manager:create and /email-marketing-manager:track command starts here.

    line 16
  3. Distinctive:

    Never say "I'm loading your context" or "Let me read your documents." Just read them and show the status header.

    line 18
  4. Distinctive:

    Read the client's Box folder.

    line 22
  5. Distinctive:

    Use the Box MCP tools to read client documents:

    line 35
  6. Distinctive:

    When context loads, query Cloudinary for the client's available assets:

    line 48
  7. Distinctive:

    If newsletter learning files exist, cross-reference:

    line 69
  8. Distinctive:

    If a document serves multiple purposes (e.g., a brand guide that includes audience personas), extract all relevant information.

    line 91
  9. Distinctive:

    If two documents contain conflicting information:

    line 93
  10. Distinctive:

    After reading, assemble structured context in this order:

    line 101
  11. Distinctive:

    Critical rule: If past newsletters exist, they define the newsletter voice — not the brand guide.

    line 116
  12. Distinctive:

    Voice extraction method: Read the 3 most recent newsletters.

    line 118
  13. Distinctive:

    Never block a command because connectors are missing.

    line 206

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Client Context — Newsletter Intelligence

Purpose

Read the client's real documents and build the context layer that makes every newsletter client-specific instead of generic. This is the skill that replaces prompt templates and SOPs — the documents ARE the config.

A prompt playbook says "upload your brand assets." This skill reads them automatically, extracts structured intelligence, and carries that intelligence across every command without the user repeating themselves.

When This Activates

Every /email-marketing-manager:create and /email-marketing-manager:track command starts here. Load context silently — do not narrate the loading process to the user. Show a one-line status header and move to the command's work.

Never say "I'm loading your context" or "Let me read your documents." Just read them and show the status header. The user sees the result, not the process.

Priority Documents

Read the client's Box folder. Look for these document types in priority order:

PriorityDocument TypeWhat to ExtractIf Missing
1Brand guide / style guideVoice attributes, tone rules, vocabulary (use/avoid), formatting preferences, greeting/sign-off patternsAsk for 2-3 adjectives describing brand voice + one example email
2Audience personasSegment names, pain points, content preferences, email behavior patterns, segment sizesAsk how many segments and one sentence about each
3Past newslettersSubject lines used, angles tried, formats that worked, hooks that opened well, typical length, greeting style, sign-off style, image usage patternsFirst newsletter will be baseline — no history to reference
4Performance data / reportsOpen rates, click rates, best send times, segment-level metrics, seasonal patterns, A/B test resultsUse industry benchmarks, state they're benchmarks
5Content strategy / marketing planNewsletter goals, brand positioning, competitive context, seasonal priorities, content pillarsAsk for primary goal of newsletter program
6Newsletter learning filesnewsletter-log.md, newsletter-learnings.md, newsletter-baselines.md — written by /email-marketing-manager:trackNo learning history. First newsletter establishes baseline.

Box MCP Tools

Use the Box MCP tools to read client documents:

  • search_files_keyword — find documents by name or content keyword (brand guide, personas, newsletters)
  • list_folder_content_by_folder_id — list everything in the client's folder
  • get_file_content — read document text (supports .md, .txt, .docx, .pdf)
  • get_file_details — check file metadata, modification dates

Reading order: List the client folder first to see what's there. Then read documents in priority order. Don't read every file — read what the priority table says matters.

Image Library — Cloudinary

Images do NOT live in the document folder. They live in Cloudinary.

When context loads, query Cloudinary for the client's available assets:

  • search-assets — find images by tag, folder, or metadata
  • get-asset-details — get dimensions, format, delivery URL for a specific asset
  • list-images — browse the image library

Build the image inventory:

FieldSource
Asset IDCloudinary public_id
Delivery URLCloudinary CDN URL
Dimensionswidth × height from asset details
Formatjpg, png, webp
TagsCloudinary tags (product, lifestyle, headshot, etc.)
CreatedUpload date

This inventory becomes the closed candidate list that the email-strategist skill selects from. The drafting step may only reference images that appear in this list.

Image-performance correlation

If newsletter learning files exist, cross-reference:

  • Which asset IDs appeared in high-performing newsletters?
  • Which image categories (by tag) correlated with higher engagement?
  • Which images have been used recently? (Avoid hero reuse within 3 newsletters.)

Document Recognition

Documents don't always have clean titles. Use content to identify type:

Content SignalsDocument Type
Voice attributes, tone descriptions, word lists, "our brand sounds like"Brand guide
Demographic details, segment names, pain points, "our audience"Audience personas
Subject lines, email body text, send dates, greeting/sign-off patternsPast newsletters
Open rates, click rates, subscriber counts, "performance"Performance data
Goals, pillars, competitive mentions, calendar, "strategy"Content strategy
"Newsletter:" entries with dates and metrics, chronologicalNewsletter log (from /email-marketing-manager:track)
Categorized learnings about angles, segments, timingNewsletter learnings (from /email-marketing-manager:track)
Baseline metrics per segment, angle effectiveness matrixNewsletter baselines (from /email-marketing-manager:track)

Ambiguous Documents

If a document serves multiple purposes (e.g., a brand guide that includes audience personas), extract all relevant information. Don't force documents into single categories.

If two documents contain conflicting information:

  • For voice: past newsletters are ground truth. They show how the brand actually sounds, not how it aspires to sound.
  • For segments: the personas doc is ground truth.
  • For performance: newsletter-baselines.md (from /email-marketing-manager:track) is ground truth if it exists.
  • For goals: the most recent document wins.

Context Assembly

After reading, assemble structured context in this order:

Brand Voice

DimensionWhere to Find ItFallback
Core attributesBrand guide ("our voice is...")Ask for 2-3 adjectives
Newsletter tonePast newsletters (actual voice used)Default to brand guide attributes
Vocabulary — useBrand guide word listNo default — write naturally
Vocabulary — avoidBrand guide banned wordsAvoid generic AI language: "unlock, unleash, leverage, dive into, game-changer"
Greeting stylePast newsletters (first line pattern)No greeting — open cold
Sign-off stylePast newsletters (closing pattern)"— [brand name or person name]"
Emoji usagePast newsletters (are emojis present?)No emojis
PunctuationPast newsletters (em dashes, Oxford commas, exclamation points)Standard punctuation, no exclamation points

Critical rule: If past newsletters exist, they define the newsletter voice — not the brand guide. The brand guide describes intent. Past newsletters show reality. When they conflict, match reality.

Voice extraction method: Read the 3 most recent newsletters. Identify:

  1. Average sentence length (short fragments = casual, compound sentences = formal)
  2. First-person usage ("I" = personal brand, "we" = company voice, neither = editorial)
  3. Question frequency (questions in every newsletter = conversational, no questions = declarative)
  4. Paragraph length (1-2 sentences = scannable, 3-5 = traditional)
  5. Opening pattern (hook, greeting, question, statement — which does this brand use?)
  6. Closing pattern (CTA only, personal sign-off, P.S. section, multiple CTAs)

These six signals define the voice more accurately than any adjective list.

Audience Segments

For each segment:

  • Name and description — who they are in one sentence
  • Email behavior — how they engage (quick scanners vs. deep readers, mobile vs. desktop, reply behavior)
  • Pain points — what problems does this brand solve for them? Ranked by urgency.
  • Content preferences — what hooks resonate? What length works? What CTAs convert?
  • Segment size — if available, approximate subscriber count per segment
  • Segment-specific learnings — from newsletter-learnings.md if it exists
  • Engagement tier — if data exists: highly engaged, occasional, dormant

Newsletter History

  • Last 5-10 newsletters — subject lines, angles, send times, performance
  • Angle inventory — what hooks have been used? Categorize by type
  • Repeat check — which angles were used in the last 4 newsletters? Off-limits for next /email-marketing-manager:create.
  • Best performers — top 3 newsletters by open rate and by click rate. What did they have in common?
  • Worst performers — bottom 3, with hypotheses on why
  • Seasonal patterns — do certain months or seasons drive different performance?
  • Image usage history — which newsletters used images? Did image newsletters outperform text-only? Which Cloudinary asset categories correlated with higher engagement?
  • Length patterns — average word count of top performers vs. worst performers

Performance Baselines

  • Overall — average open rate, click rate, unsubscribe rate
  • By segment — baseline metrics per segment
  • By day/time — which send windows perform best?
  • By angle type — do certain hooks outperform?
  • By format — long vs. short, image vs. text-only, single-CTA vs. multi-CTA
  • Trend — improving, declining, or flat over the last 5-10 newsletters?
  • Newsletter count — determines prediction confidence
Tracked CountConfidenceBaseline Reliability
0BaselineIndustry benchmarks only
1-2LowDirectional. Wide variance expected.
3-7MediumSegment-level patterns emerging.
8-15HighReliable predictions. Cross-variable patterns visible.
16+Very HighFull intelligence. Confident recommendations.

Learning History (from /email-marketing-manager:track)

  • Cumulative learnings — every specific fact recorded by past /email-marketing-manager:track runs
  • Confidence level — based on newsletter count
  • Last updated — when was the most recent /email-marketing-manager:track run?
  • Stale data flag — if last /email-marketing-manager:track was 60+ days ago, note it
  • Learning count — how many individual learnings recorded?
  • Learning categories present — which categories have data?

Freshness Checks

ConditionAction
Performance data > 90 days oldNote: "Baselines are from [date] — recent results may differ."
Past newsletters > 6 months old with nothing recentNote: "Newsletter history is stale — first /email-marketing-manager:create establishes new patterns."
Cloudinary library unchanged for 90+ daysNote: "Image library hasn't been updated recently. Consider adding fresh visuals."
Learning files last updated 60+ days agoNote: "Learning data is aging. Run /email-marketing-manager:track on recent sends to refresh."
Brand guide last modified > 1 year agoNote: "Brand guide may be outdated. If voice has evolved, consider updating."

Connector Awareness

ConnectorIf AvailableIf Unavailable
BoxRead all documents automatically. Write learning files back. Full context.Ask user to paste brand context and describe audience. Learning loop won't persist between sessions.
CloudinaryQuery image library. Build verified closed candidate list. Image-performance correlation.No verified images. Newsletter will be text-only. Suggest what images would strengthen output.
BeehiivPull real send metrics for /email-marketing-manager:track. Post drafts for /email-marketing-manager:create. Subscriber counts for segment sizing.User pastes metrics manually. Copies newsletter to paste into Beehiiv. Still works — just manual.

Degradation Behavior

The plugin works at every level of connectivity:

LevelWhat's ConnectedSystem Capability
FullCloudinary + Box + BeehiivComplete: verified images, reads context, posts drafts, pulls metrics, learning loop persists
Docs + ImagesCloudinary + BoxStrong: verified images, reads context, writes newsletters, saves records. Manual metrics, manual draft posting.
Docs onlyBoxModerate: reads context, no verified images. Manual metrics, manual draft posting.
ManualNothingFunctional: user pastes brand context and examples. No persistent learning. No verified images.

Never block a command because connectors are missing. Degrade gracefully. State what's missing and what it costs — then do the best work possible with what's available.

Status Header

Show one line at the top of every command output:

  • 🟢 Config: Connected — [list of document types found] — [N] Cloudinary images available — Beehiiv active (full context)
  • 🟡 Config: Partial — [what's found], missing [what's not] (some connectors active)
  • ⚪ Config: Manual — provide brand context and audience details (no connectors)

Cross-Plugin Compatibility

This skill follows the same architecture as Editorial OS's client-context skill. If a user has both plugins installed pointing at the same Box folder, the same documents serve both — Editorial OS reads them for content strategy, Email Marketing Manager reads them for newsletters. One folder, multiple plugins, no duplication.

Shared vs. Plugin-Specific Files

FileShared (both plugins read)Plugin-specific
Brand guide✅
Audience personas✅
Content strategy✅
Past newsletters✅ Email Marketing Manager
newsletter-log.md✅ Written by /email-marketing-manager:track
newsletter-learnings.md✅ Written by /email-marketing-manager:track
newsletter-baselines.md✅ Written by /email-marketing-manager:track

The newsletter-specific files are written by /email-marketing-manager:track and read by this skill. They live alongside the brand documents in the same Box folder. The user can read and edit them — transparency is a feature.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.