ima-claude 2.15.0 → 2.18.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 +13 -1
- package/dist/cli.js +18 -1
- package/package.json +1 -1
- package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
- package/plugins/ima-claude/agents/wp-developer.md +2 -1
- package/plugins/ima-claude/hooks/prompt_coach_digest.md +1 -1
- package/plugins/ima-claude/skills/espocrm/SKILL.md +79 -0
- package/plugins/ima-claude/skills/espocrm-api/SKILL.md +360 -0
- package/plugins/ima-claude/skills/espocrm-api/references/where-operators.md +84 -0
- package/plugins/ima-claude/skills/functional-programmer/SKILL.md +15 -0
- package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +232 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-blog-post.md +51 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-fundraising-email.md +54 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-newsletter.md +54 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-op-ed.md +41 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-press-release.md +45 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-social-media.md +141 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/format-webinar-email.md +37 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/ima-copy-frameworks.md +299 -0
- package/plugins/ima-claude/skills/ima-copywriting/references/ima-transitions.md +199 -0
- package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +159 -0
- package/plugins/ima-claude/skills/ima-editorial-scorecard/references/format-expectations.md +66 -0
- package/plugins/ima-claude/skills/ima-editorial-scorecard/references/scoring-rubrics.md +73 -0
- package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +171 -0
- package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +104 -0
- package/plugins/ima-claude/skills/ima-email-creator/assets/base-template.html +256 -0
- package/plugins/ima-claude/skills/ima-email-creator/references/drip-sequence.md +66 -0
- package/plugins/ima-claude/skills/ima-email-creator/references/email-css-safe.md +104 -0
- package/plugins/ima-claude/skills/ima-email-creator/references/espocrm-compat.md +58 -0
- package/plugins/ima-claude/skills/ima-email-creator/references/newsletter-layout.md +127 -0
- package/plugins/ima-claude/skills/ima-email-creator/references/wp-transactional.md +77 -0
- package/plugins/ima-claude/skills/ima-email-creator/scripts/css-inliner.py +47 -0
- package/plugins/ima-claude/skills/ima-email-creator/scripts/espocrm-prep.py +52 -0
- package/plugins/ima-claude/skills/ima-email-creator/scripts/requirements.txt +2 -0
- package/plugins/ima-claude/skills/wp-ddev/SKILL.md +264 -0
- package/plugins/ima-claude/skills/wp-ddev/references/ddev-commands.md +232 -0
- package/plugins/ima-claude/skills/wp-ddev/references/wp-cli-reference.md +406 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Format Expectations — Voice & Structure by Content Type
|
|
2
|
+
|
|
3
|
+
Reference this when scoring Structural Craft and Brand Voice to verify format-specific requirements.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Voice Check by Format
|
|
8
|
+
|
|
9
|
+
| Format | Expected Tone Blend | Red Flags |
|
|
10
|
+
|--------|-------------------|-----------|
|
|
11
|
+
| Newsletter | Friendly + Informative | Stiff, overly formal, no personality |
|
|
12
|
+
| Webinar Email | Friendly + Informative (higher energy) | Clickbaity, overselling |
|
|
13
|
+
| Blog Post | Professional + Informative | Jargon-heavy, no translation |
|
|
14
|
+
| Press Release | Professional + Informative | Advocacy language in narrative sections |
|
|
15
|
+
| Fundraising | Inspirational + Supportive | Guilt-tripping, fear-mongering, manipulation |
|
|
16
|
+
| Op-Ed | Professional + Direct (with edge) | Personal attacks, unsubstantiated claims |
|
|
17
|
+
| Social Post | Friendly + Informational | Generic, no substance, empty amplification |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Structural Expectations by Format
|
|
22
|
+
|
|
23
|
+
### Newsletter
|
|
24
|
+
**Must include:** Opening hook, Quick Links block (emoji + title, 3-6 items), content sections with emoji headers, support CTA block ("PLEASE SUPPORT HONEST MEDICINE")
|
|
25
|
+
|
|
26
|
+
### Webinar Email
|
|
27
|
+
**Must include:** "Watch Now!" header, hook headline (1 sentence), context paragraph, "In this episode, you'll learn:" with 3 bullets, "👉 Watch/Read Now To Get the Full Story" CTA
|
|
28
|
+
|
|
29
|
+
### Blog Post
|
|
30
|
+
**Must include:** Headline + subtitle/deck, opening context (2-3 paragraphs), H2 section headers, evidence citations, related resources, support CTA
|
|
31
|
+
|
|
32
|
+
### Press Release
|
|
33
|
+
**Must include:** "FOR IMMEDIATE RELEASE" + date + contact, headline + subheadline, dateline lede "(Washington, DC) —", quote block (attributed), boilerplate "About IMA", media contact, "###"
|
|
34
|
+
|
|
35
|
+
### Fundraising Email
|
|
36
|
+
**Must include:** Headline, donate CTA above fold, pull quote, "Dear {Person.name}" salutation, problem/solution narrative, impact list with specific dollar amounts, signoff with credentials, P.S. block with urgency + repeat CTA
|
|
37
|
+
|
|
38
|
+
### Op-Ed
|
|
39
|
+
**Must include:** Provocative headline, opening salvo (stakes in first 100 words), evidence-based argument body, "the turn" (reframe), principled close that returns to opening frame
|
|
40
|
+
|
|
41
|
+
### Social Post
|
|
42
|
+
**Must include (varies by category):**
|
|
43
|
+
|
|
44
|
+
| Category | Structural Requirements |
|
|
45
|
+
|----------|----------------------|
|
|
46
|
+
| Video/Research | Editorial headline + summary paragraph + video embed |
|
|
47
|
+
| Statement | "FULL STATEMENT:" label + full text + @tags |
|
|
48
|
+
| Action/Campaign | Urgency opener + specific ask + direct link + campaign graphic |
|
|
49
|
+
| Media Hit | Quote pull opener + one context sentence + "Watch now." + video clip |
|
|
50
|
+
| Announcement | Warm opener + branded infographic (copy is short) |
|
|
51
|
+
| Journal Promotion | Punchy headline + summary + "Watch now." + thread indicator if multi-part |
|
|
52
|
+
| Webinar Promo | "Live tonight!" + speakers with handles + topic list + date/time/platform + branded graphic |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Evidence Expectations by Format
|
|
57
|
+
|
|
58
|
+
| Format | Standard |
|
|
59
|
+
|--------|----------|
|
|
60
|
+
| Newsletter | Study/journal named per section; summaries accurate |
|
|
61
|
+
| Webinar Email | Topic accurately described; claims match webinar content |
|
|
62
|
+
| Blog Post | Full citations; methodology context where relevant |
|
|
63
|
+
| Press Release | Study title, journal, authors named; key findings accurate |
|
|
64
|
+
| Fundraising | Statistics sourced; impact claims realistic and specific |
|
|
65
|
+
| Op-Ed | Claims backed by evidence, funding sources, or public record |
|
|
66
|
+
| Social Post | Claims traceable to named source, study, or linked content; precision language even in short form |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Scoring Rubrics — Grade-Level Criteria
|
|
2
|
+
|
|
3
|
+
Detailed grading criteria for each of the five scorecard categories. Reference this when assigning grades.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Brand Voice
|
|
8
|
+
|
|
9
|
+
| Grade | Criteria |
|
|
10
|
+
|-------|----------|
|
|
11
|
+
| 🟢 A | Unmistakably IMA. Correct tone blend for format. Signature phrases land naturally. No terminology violations. |
|
|
12
|
+
| 🟢 B | Sounds like IMA with minor inconsistencies. One tone slip or one awkward phrase. |
|
|
13
|
+
| 🟡 C | Generic health nonprofit voice. Could be anyone. Missing IMA personality. |
|
|
14
|
+
| 🔴 D | Wrong tone for the format. Fear-based language, adversarial without evidence, or stiff/institutional. |
|
|
15
|
+
| 🔴 F | Uses "FLCCC," loaded terms without evidence, or sounds like pharma marketing. Fundamentally off-brand. |
|
|
16
|
+
|
|
17
|
+
**Key signals to check:** No FLCCC, no fear-based messaging, correct tone blend for format, IMA signature phrases present, no AI tells.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Evidence Quality
|
|
22
|
+
|
|
23
|
+
| Grade | Criteria |
|
|
24
|
+
|-------|----------|
|
|
25
|
+
| 🟢 A | Every health claim backed by named study or labeled as opinion. Journals cited. Precise language ("may help," not "cures"). |
|
|
26
|
+
| 🟢 B | Most claims supported. One vague reference or one missing citation. Language mostly precise. |
|
|
27
|
+
| 🟡 C | Some claims float without evidence. Studies referenced but not named. Occasional overstatement. |
|
|
28
|
+
| 🔴 D | Multiple unsupported health claims. Sweeping generalizations. "Cure" language without context. |
|
|
29
|
+
| 🔴 F | Fabricated or misleading claims. No evidence cited. Could harm patient trust. |
|
|
30
|
+
|
|
31
|
+
**Key signals to check:** Studies named, journals cited, "may help" vs "cures", no fabricated stats, qualified claims labeled.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Audience Clarity
|
|
36
|
+
|
|
37
|
+
| Grade | Criteria |
|
|
38
|
+
|-------|----------|
|
|
39
|
+
| 🟢 A | A patient understands it; a physician respects it. Medical terms defined on first use. Reading level matches audience. |
|
|
40
|
+
| 🟢 B | Clear overall. One undefined term or one section where complexity spikes. |
|
|
41
|
+
| 🟡 C | Some jargon left unexplained. Sections that lose the general reader. Or oversimplified to the point of losing precision. |
|
|
42
|
+
| 🔴 D | Significant jargon barrier. Patient audience would struggle. Or so dumbed-down it loses credibility with professionals. |
|
|
43
|
+
| 🔴 F | Impenetrable to target audience. Massive gap between language and reader. |
|
|
44
|
+
|
|
45
|
+
**Key signals to check:** Medical terms defined, reading level appropriate, no unexplained jargon, not dumbed down either.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Structural Craft
|
|
50
|
+
|
|
51
|
+
| Grade | Criteria |
|
|
52
|
+
|-------|----------|
|
|
53
|
+
| 🟢 A | Follows IMA template for the format. Strong opening hook. Logical flow. Sections earn their place. Scannable. |
|
|
54
|
+
| 🟢 B | Mostly follows structure. One section out of order or one weak transition. |
|
|
55
|
+
| 🟡 C | Recognizable format but missing key elements. Weak hook. Sections don't build. |
|
|
56
|
+
| 🔴 D | Wrong structure for the format. Buried lede. Missing essential sections. |
|
|
57
|
+
| 🔴 F | No recognizable structure. Wall of text. Format completely wrong. |
|
|
58
|
+
|
|
59
|
+
**Key signals to check:** Correct template structure, section ordering, CTA placement, headline formula, opening hook quality.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## CTA Effectiveness
|
|
64
|
+
|
|
65
|
+
| Grade | Criteria |
|
|
66
|
+
|-------|----------|
|
|
67
|
+
| 🟢 A | Every CTA is specific, verb-first, correctly formatted for channel (» for email/web, short imperative for social). Reader knows exactly what clicking will do. |
|
|
68
|
+
| 🟢 B | CTAs are clear and well-placed. Minor formatting inconsistencies (missing chevron, wrong emoji). |
|
|
69
|
+
| 🟡 C | CTAs present but generic ("Learn More") or inconsistently formatted. |
|
|
70
|
+
| 🔴 D | CTAs missing from key positions. Vague or buried. "Click Here" usage. |
|
|
71
|
+
| 🔴 F | No CTAs, or CTAs that don't match the content's purpose. |
|
|
72
|
+
|
|
73
|
+
**Key signals to check:** Verb-first CTAs, » chevrons on email/web, short imperatives on social, emoji where appropriate, CTA frequency appropriate to format, no "Click Here."
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ima-editorial-workflow
|
|
3
|
+
description: "Orchestrates the IMA editorial process — Plan, Write, Review, Approve, Learn. Triggers on: /write, /rewrite, /social, /brainstorm, 'draft,' 'create,' 'improve,' 'fix,' 'edit,' 'make better,' 'new newsletter,' 'new press release,' or any editorial request that isn't a standalone /scorecard review. Routes to ima-copywriting for drafting and ima-editorial-scorecard for review. Always load ima-brand alongside."
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# IMA Editorial Workflow
|
|
9
|
+
|
|
10
|
+
Orchestrates every editorial request through a structured sequence. This skill is the traffic controller — it manages the process and delegates writing to `ima-copywriting` and scoring to `ima-editorial-scorecard`.
|
|
11
|
+
|
|
12
|
+
## Invocation
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/write [type] → Plan and draft new content
|
|
16
|
+
/rewrite → Review existing content, then improve it
|
|
17
|
+
/social [category] → Plan and draft a social media post
|
|
18
|
+
/brainstorm [topic] → Explore ideas and angles before committing
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Also triggers on natural language: "draft a newsletter," "improve this," "write a press release," "help me with this blog post," etc.
|
|
22
|
+
|
|
23
|
+
**Content types for `/write`:**
|
|
24
|
+
`newsletter` · `webinar` · `blog` · `press-release` · `fundraising` · `op-ed` · `social`
|
|
25
|
+
|
|
26
|
+
**Categories for `/social`:**
|
|
27
|
+
`video` · `statement` · `action` · `media-hit` · `announcement` · `journal` · `webinar-promo`
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## The Workflow
|
|
32
|
+
|
|
33
|
+
Every editorial request follows this sequence. No diving straight into a draft. No three rounds of follow-up questions. Gather context once, execute cleanly, review honestly.
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
PLAN → Identify intent, content type, gather missing context
|
|
37
|
+
WRITE → Draft using ima-copywriting + format reference + ima-brand
|
|
38
|
+
REVIEW → Score against standards using ima-editorial-scorecard
|
|
39
|
+
APPROVE → Present for human decision with clear next actions
|
|
40
|
+
LEARN → Capture what worked for future drafts
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## PLAN (Always Runs First)
|
|
46
|
+
|
|
47
|
+
Every editorial request starts with planning. Even quick ones. Especially quick ones.
|
|
48
|
+
|
|
49
|
+
### Step 1: Detect Intent
|
|
50
|
+
|
|
51
|
+
| Command or Signal | Intent | Workflow Path |
|
|
52
|
+
|-------------------|--------|---------------|
|
|
53
|
+
| `/write`, "draft," "create," "new" | **Create** new content | Plan → Write → Review → Approve |
|
|
54
|
+
| `/rewrite`, "improve," "fix," "edit," "make better" | **Rewrite** existing content | Plan → Review → Write → Review → Approve |
|
|
55
|
+
| `/social` | **Create** social post | Plan → Write → Review → Approve |
|
|
56
|
+
| `/brainstorm` | **Explore** before committing | Brainstorm → Plan (when ready) |
|
|
57
|
+
| Pastes content, no instructions | **Ambiguous** | Ask: "Score this or rewrite it?" |
|
|
58
|
+
| "Continue," "next version," "apply fixes" | **Iterate** | Skip Plan → Write |
|
|
59
|
+
|
|
60
|
+
**Note:** `/scorecard` is handled directly by the `ima-editorial-scorecard` skill, not this workflow.
|
|
61
|
+
|
|
62
|
+
### Step 2: Identify Content Type
|
|
63
|
+
|
|
64
|
+
From the command argument, or detect from context, or ask.
|
|
65
|
+
|
|
66
|
+
### Step 3: Gather Context (One Prompt, Not a Chain)
|
|
67
|
+
|
|
68
|
+
**Use the `ask_user_input` widget** to collect 2–3 answers in a single structured prompt. Do not ask questions one at a time across multiple messages.
|
|
69
|
+
|
|
70
|
+
**Rules:**
|
|
71
|
+
- If the user already provided enough context, skip answered questions. Don't ask "what's the content type?" when they said `/write press-release`.
|
|
72
|
+
- Default aggressively. If someone says `/write fundraising` about the year-end campaign, you already know the audience, tone, and CTA structure. Ask only for what's genuinely missing.
|
|
73
|
+
- For iteration ("apply the fixes," "next version"), skip Plan entirely.
|
|
74
|
+
- If the user says "just do it," respect that. Write with available context, note assumptions, flag gaps with `[brackets]`.
|
|
75
|
+
|
|
76
|
+
### Context Gathering by Command
|
|
77
|
+
|
|
78
|
+
**`/write [type]` — Creating new content:**
|
|
79
|
+
- Core message — what's the ONE takeaway? (open text)
|
|
80
|
+
- Reader action — what should they do? (widget: Read / Watch / Donate / Share / Sign / Attend / Download)
|
|
81
|
+
- Source material available? (widget multi-select: Study · Webinar · Quote from leader · Press release · External article · None yet)
|
|
82
|
+
- Subject matter expert? (open text)
|
|
83
|
+
- Responding to external events? (open text, optional)
|
|
84
|
+
- Audience segment? (widget: General supporters · Healthcare pros · Donors · Media · New subscribers)
|
|
85
|
+
|
|
86
|
+
**`/rewrite` — Improving content:**
|
|
87
|
+
- What's wrong with it? (open text)
|
|
88
|
+
- Keep structure or rebuild? (widget: Keep structure · Rebuild)
|
|
89
|
+
- Preserve specific elements? (open text, optional)
|
|
90
|
+
|
|
91
|
+
**`/social [category]` — Social media post:**
|
|
92
|
+
- Category, if not specified (widget: Video/Research · Statement · Action/Campaign · Media Hit · Announcement · Journal · Webinar Promo)
|
|
93
|
+
- What are you promoting/announcing? (open text)
|
|
94
|
+
- Link or media to attach? (open text)
|
|
95
|
+
- Quote to feature? (open text, optional)
|
|
96
|
+
|
|
97
|
+
**`/brainstorm [topic]` — Exploring angles:**
|
|
98
|
+
- What's the topic or event? (open text)
|
|
99
|
+
- Any format preference, or open to suggestions? (widget: Newsletter angle · Blog angle · Social angle · Op-ed angle · No preference)
|
|
100
|
+
- What's the goal? (widget: Drive awareness · Drive action · Respond to news · Celebrate a win · Educate)
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## WRITE
|
|
105
|
+
|
|
106
|
+
After planning, load tools and draft:
|
|
107
|
+
|
|
108
|
+
1. Load `ima-brand` skill (always — voice/tone authority)
|
|
109
|
+
2. Load `ima-copywriting` skill (writing principles + format template for this content type)
|
|
110
|
+
3. Check project Files for published examples of this format as style benchmarks
|
|
111
|
+
4. Write the draft
|
|
112
|
+
5. Self-check against the Quality Checklist in ima-copywriting
|
|
113
|
+
|
|
114
|
+
**Deliver the draft with a brief note** on key editorial choices: why you opened this way, which template you followed, what still needs user input.
|
|
115
|
+
|
|
116
|
+
**Use placeholder brackets** for anything you don't have: `[study name]`, `[specific finding]`, `[dollar amount]`, `[date]`. Never invent evidence.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## REVIEW
|
|
121
|
+
|
|
122
|
+
Run the editorial scorecard — on your own draft (self-review) or user-submitted content.
|
|
123
|
+
|
|
124
|
+
1. Load `ima-editorial-scorecard` skill
|
|
125
|
+
2. Auto-detect content type or use what was specified
|
|
126
|
+
3. Score across five categories: Brand Voice · Evidence Quality · Audience Clarity · Structural Craft · CTA Effectiveness
|
|
127
|
+
4. Present scorecard table first, then What's Working, Priority Fixes, Line-Level Notes
|
|
128
|
+
|
|
129
|
+
**For self-review after writing:**
|
|
130
|
+
- Be honest. If the draft you wrote has a weak opening or missing independence signal, say so.
|
|
131
|
+
- Separate what *you* can fix on the next pass from what the *user* needs to provide (missing data, quotes, approvals).
|
|
132
|
+
|
|
133
|
+
**For user-submitted content:**
|
|
134
|
+
- Score first, then ask if they want a rewrite.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## APPROVE
|
|
139
|
+
|
|
140
|
+
Present the work for human decision. Use the `ask_user_input` widget to offer clear next actions:
|
|
141
|
+
|
|
142
|
+
| Option | What Happens Next |
|
|
143
|
+
|--------|-------------------|
|
|
144
|
+
| ✅ Approve | Content is ready. Move to Learn. |
|
|
145
|
+
| 🔄 Revise | Apply specific changes. Return to Write. |
|
|
146
|
+
| 🔁 Rebuild | Different approach. Return to Plan. |
|
|
147
|
+
| 💬 Discuss | Talk through a section before deciding. |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## LEARN
|
|
152
|
+
|
|
153
|
+
After approval, briefly capture what worked or what the user corrected:
|
|
154
|
+
|
|
155
|
+
> "Noted for future [content type] drafts:
|
|
156
|
+
> - [Pattern worth reusing or correction to remember]"
|
|
157
|
+
|
|
158
|
+
Examples:
|
|
159
|
+
- "Noted: Dr. Varon prefers 'the IMA' in formal quotes, not just 'IMA.'"
|
|
160
|
+
- "Noted: Year-end fundraising leads with match mechanic, not mission statement."
|
|
161
|
+
- "Noted: Thread format (1/4) works well for journal promotions on social."
|
|
162
|
+
|
|
163
|
+
If the learning should persist across sessions, ask: "Want me to remember this for future drafts?" and use memory.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Related Skills
|
|
168
|
+
|
|
169
|
+
- **ima-brand**: Voice, tone, terminology, visual identity (ALWAYS load alongside)
|
|
170
|
+
- **ima-copywriting**: Format templates, writing principles, CTA patterns, quality checklist
|
|
171
|
+
- **ima-editorial-scorecard**: Scoring rubric for content review (handles `/scorecard` independently)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ima-email-creator
|
|
3
|
+
description: >-
|
|
4
|
+
Render branded, email-client-safe HTML from editorial copy. Table-based layouts,
|
|
5
|
+
inline CSS, EspoCRM compatibility, and IMA brand styling. Use when: creating email
|
|
6
|
+
HTML templates, rendering newsletter/campaign/drip emails, preparing emails for
|
|
7
|
+
EspoCRM, converting email HTML for paste into EspoCRM source view. Triggers on:
|
|
8
|
+
email HTML, email template, EspoCRM email, branded email, render email, email layout,
|
|
9
|
+
newsletter HTML, campaign email HTML. For email copy/content, see ima-copywriting.
|
|
10
|
+
Always load ima-brand alongside.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# IMA Email Creator
|
|
14
|
+
|
|
15
|
+
Renders IMA-branded email HTML from editorial copy. Platform-agnostic — runs in any Claude environment.
|
|
16
|
+
|
|
17
|
+
## Core Principle
|
|
18
|
+
|
|
19
|
+
**Email HTML is not web HTML.** Tables for layout, inline CSS only, 600px max width, test across clients.
|
|
20
|
+
Gmail strips `<style>` blocks. Outlook uses Word's rendering engine, which breaks CSS floats and flexbox.
|
|
21
|
+
Every layout decision must survive both.
|
|
22
|
+
|
|
23
|
+
## Decision Tree
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
What type of email?
|
|
27
|
+
├── Newsletter / Campaign / Fundraising / Webinar promo
|
|
28
|
+
│ → references/newsletter-layout.md
|
|
29
|
+
├── Drip / Sequence email (individual)
|
|
30
|
+
│ → references/drip-sequence.md
|
|
31
|
+
├── WordPress transactional (PHP)
|
|
32
|
+
│ → references/wp-transactional.md
|
|
33
|
+
├── Need EspoCRM compatibility info?
|
|
34
|
+
│ → references/espocrm-compat.md
|
|
35
|
+
└── General email CSS questions?
|
|
36
|
+
→ references/email-css-safe.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Quick Start
|
|
40
|
+
|
|
41
|
+
1. Get copy from `ima-copywriting` (or user provides it)
|
|
42
|
+
2. Choose email type above → load appropriate reference
|
|
43
|
+
3. Render HTML using base template from `assets/base-template.html`
|
|
44
|
+
4. Write to `~/.claude/output/{name}.html` for browser preview
|
|
45
|
+
5. Run EspoCRM prep if needed: `python3 scripts/espocrm-prep.py output.html`
|
|
46
|
+
6. User pastes result into EspoCRM source view
|
|
47
|
+
|
|
48
|
+
## Scripts
|
|
49
|
+
|
|
50
|
+
| Script | Purpose | Usage |
|
|
51
|
+
|--------|---------|-------|
|
|
52
|
+
| `espocrm-prep.py` | Extract body, migrate styles to div wrapper | `python3 scripts/espocrm-prep.py input.html [--out output.html]` |
|
|
53
|
+
| `css-inliner.py` | Inline style blocks into element attributes | `python3 scripts/css-inliner.py input.html [--out output.html]` |
|
|
54
|
+
|
|
55
|
+
Install deps once: `pip install -r scripts/requirements.txt`
|
|
56
|
+
|
|
57
|
+
## IMA Brand Colors
|
|
58
|
+
|
|
59
|
+
| Element | Color Name | Hex |
|
|
60
|
+
|---------|-----------|-----|
|
|
61
|
+
| Headers/headings | Trustworthy Indigo | `#00066F` |
|
|
62
|
+
| CTA buttons | Aquatic Pulse | `#00B8B8` |
|
|
63
|
+
| CTA fallback (accessibility) | Accessible Teal | `#007BB4` |
|
|
64
|
+
| Body text | Gravel | `#494949` |
|
|
65
|
+
| Outer background | Clarity Wash | `#F2F3F5` |
|
|
66
|
+
| Inner background | White | `#FFFFFF` |
|
|
67
|
+
| Footer text | Calm Stone | `#919396` |
|
|
68
|
+
| Dividers | Light Gray | `#dddddd` |
|
|
69
|
+
|
|
70
|
+
## Key Rules
|
|
71
|
+
|
|
72
|
+
- Tables for ALL layout — Outlook's Word engine breaks floats and flexbox
|
|
73
|
+
- Inline CSS only — Gmail strips `<style>` blocks
|
|
74
|
+
- 600px max width — universal client safe zone
|
|
75
|
+
- Typography: Lato for headings (bold 700). Fallback: Arial, Helvetica, sans-serif. Open Sans for body text (regular 400). Fallback: Helvetica Neue, Helvetica, Arial, sans-serif
|
|
76
|
+
- 16px minimum body text (accessibility for 50+ audience), 28px main headings, 20px section headings
|
|
77
|
+
- Images: absolute URLs, explicit `width`/`height`, `display:block`, meaningful `alt`, 5px border-radius, max-width 580px in content area
|
|
78
|
+
- `role="presentation"` on all layout tables
|
|
79
|
+
- Medical disclaimer in footer for any health content
|
|
80
|
+
- UTM parameters on all links (utm_term, utm_medium, utm_source, utm_content, utm_campaign)
|
|
81
|
+
|
|
82
|
+
## EspoCRM Variables
|
|
83
|
+
|
|
84
|
+
Single-brace syntax (NOT Handlebars double-brace):
|
|
85
|
+
- `{Person.firstName}` — first name (newsletters)
|
|
86
|
+
- `{Person.name}` — full name (campaigns)
|
|
87
|
+
- `{optOutLink}` — unsubscribe link (all emails, in footer)
|
|
88
|
+
|
|
89
|
+
## Builder Context
|
|
90
|
+
|
|
91
|
+
Production emails are built in BeeFree and exported. Generate HTML that matches BeeFree's output patterns: `nl-container` → `row` → `row-content` stack → `column` structure. This ensures visual parity when HTML is imported back into BeeFree or compared against production exports.
|
|
92
|
+
|
|
93
|
+
> **Brand evolution note:** Production emails prior to Brand Book v4.0 used Montserrat/#0296a1/#374751/14px.
|
|
94
|
+
> New emails should follow the brand book values above. The structural patterns (BeeFree DOM, VML buttons,
|
|
95
|
+
> CSS resets, EspoCRM variables) remain the same regardless of color/font choices.
|
|
96
|
+
|
|
97
|
+
## Integration Points
|
|
98
|
+
|
|
99
|
+
| Skill | Role |
|
|
100
|
+
|-------|------|
|
|
101
|
+
| `ima-brand` | Color and voice authority — always load alongside |
|
|
102
|
+
| `ima-copywriting` | Content source for all email types |
|
|
103
|
+
| `ima-editorial-workflow` | Orchestrates Plan → Write → Render → Review |
|
|
104
|
+
| `ima-editorial-scorecard` | Reviews final output |
|