ima-claude 2.16.0 → 2.20.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.
Files changed (41) hide show
  1. package/README.md +16 -1
  2. package/dist/cli.js +9 -1
  3. package/package.json +1 -1
  4. package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
  5. package/plugins/ima-claude/agents/wp-developer.md +2 -1
  6. package/plugins/ima-claude/hooks/prompt_coach_digest.md +1 -1
  7. package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +133 -0
  8. package/plugins/ima-claude/skills/agentic-workflows/references/phases/deliver.md +181 -0
  9. package/plugins/ima-claude/skills/agentic-workflows/references/phases/draft.md +99 -0
  10. package/plugins/ima-claude/skills/agentic-workflows/references/phases/gather.md +130 -0
  11. package/plugins/ima-claude/skills/agentic-workflows/references/phases/outline.md +106 -0
  12. package/plugins/ima-claude/skills/agentic-workflows/references/phases/review.md +137 -0
  13. package/plugins/ima-claude/skills/agentic-workflows/references/standards/draft-format.md +159 -0
  14. package/plugins/ima-claude/skills/agentic-workflows/references/standards/editorial-standards.md +160 -0
  15. package/plugins/ima-claude/skills/agentic-workflows/references/standards/outline-format.md +110 -0
  16. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-construction-guide.md +263 -0
  17. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-webinar-example.txt +275 -0
  18. package/plugins/ima-claude/skills/agentic-workflows/references/templates/cta-block-catalog.md +169 -0
  19. package/plugins/ima-claude/skills/agentic-workflows/references/templates/espo-email-preparation.md +241 -0
  20. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-recap-email-espo.html +339 -0
  21. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-reminder-email-espo.html +458 -0
  22. package/plugins/ima-claude/skills/agentic-workflows/references/workflows/editorial/webinar-summary.md +81 -0
  23. package/plugins/ima-claude/skills/design-to-code/SKILL.md +126 -0
  24. package/plugins/ima-claude/skills/design-to-code/references/guardrails.md +46 -0
  25. package/plugins/ima-claude/skills/design-to-code/references/phase-a-design-to-prompt.md +141 -0
  26. package/plugins/ima-claude/skills/design-to-code/references/phase-b-prompt-to-code.md +155 -0
  27. package/plugins/ima-claude/skills/design-to-code/references/prompt-template.md +95 -0
  28. package/plugins/ima-claude/skills/espocrm/SKILL.md +79 -0
  29. package/plugins/ima-claude/skills/espocrm-api/SKILL.md +360 -0
  30. package/plugins/ima-claude/skills/espocrm-api/references/where-operators.md +84 -0
  31. package/plugins/ima-claude/skills/functional-programmer/SKILL.md +15 -0
  32. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +94 -14
  33. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-attachments.md +115 -0
  34. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-auth.md +103 -0
  35. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-bulk.md +149 -0
  36. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-misc.md +195 -0
  37. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-sprints.md +158 -0
  38. package/plugins/ima-claude/skills/prompt-starter/SKILL.md +9 -6
  39. package/plugins/ima-claude/skills/wp-ddev/SKILL.md +264 -0
  40. package/plugins/ima-claude/skills/wp-ddev/references/ddev-commands.md +232 -0
  41. package/plugins/ima-claude/skills/wp-ddev/references/wp-cli-reference.md +406 -0
package/README.md CHANGED
@@ -255,7 +255,7 @@ Named subagents with hard constraints — model, tools, and permissions enforced
255
255
  | `ima-claude:implementer` | sonnet | full access | `functional-programmer` | Feature dev, bug fixes, refactoring, tests |
256
256
  | `ima-claude:reviewer` | sonnet | read-only | `functional-programmer` | Code review, security audit, FP compliance |
257
257
  | `ima-claude:tester` | sonnet | full access | `unit-testing`, `functional-programmer` | Test creation, TDD, test running, debugging failures |
258
- | `ima-claude:wp-developer` | sonnet | full access | `php-fp`, `php-fp-wordpress`, `wp-local`, `ima-forms-expert`, `ima-bootstrap`, `jquery` | WordPress plugins, themes, WP-CLI, forms |
258
+ | `ima-claude:wp-developer` | sonnet | full access | `php-fp`, `php-fp-wordpress`, `wp-ddev`, `wp-local`, `ima-forms-expert`, `ima-bootstrap`, `jquery` | WordPress plugins, themes, WP-CLI, forms |
259
259
  | `ima-claude:memory` | sonnet | full access | `mcp-vestige`, `mcp-qdrant`, `mcp-serena` | Memory search, storage, consolidation across Vestige/Qdrant/Serena |
260
260
 
261
261
  Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest changes needed to add new ones.
@@ -286,6 +286,13 @@ Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest change
286
286
  | `py-fp` | Python FP core - comprehensions, generators, frozen dataclasses |
287
287
  | `quasar-fp` | Quasar Framework with utility-first CSS |
288
288
 
289
+ ### CRM Skills
290
+
291
+ | Skill | Description |
292
+ |-------|-------------|
293
+ | `espocrm` | EspoCRM skill family router (intent detection, Salesforce mapping, child skill routing) |
294
+ | `espocrm-api` | EspoCRM v9.x REST API (auth, CRUD, WHERE filtering, relationships, webhooks, mass ops) |
295
+
289
296
  ### Domain Expert Skills
290
297
 
291
298
  | Skill | Description |
@@ -295,12 +302,14 @@ Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest change
295
302
  | `ima-bootstrap` | Bootstrap 5.3 + IMA brand (utility-first CSS, SCSS) |
296
303
  | `playwright` | E2E testing with Playwright + TypeScript |
297
304
  | `docs-organize` | Three-tier documentation organization |
305
+ | `wp-ddev` | WP-CLI commands for DDEV WordPress environments |
298
306
  | `wp-local` | WP-CLI commands for Flywheel Local WP |
299
307
  | `jira-checkpoint` | Jira awareness checkpoints for team visibility |
300
308
  | `phpunit-wp` | PHPUnit testing for WordPress plugins with FP principles |
301
309
  | `rg` | Ripgrep usage patterns |
302
310
  | `ima-forms-expert` | WordPress form components (IMA Forms) |
303
311
  | `discourse-admin` | Discourse admin API (site settings, config export/import, groups) |
312
+ | `design-to-code` | Convert design screenshots → implementation prompt → working WordPress code (two-phase workflow) |
304
313
  | `ima-cancer-care-guides` | Cancer care guide document pipeline (DOCX → markdown → HTML → PDF, Canva mapping) |
305
314
  | `ima-copywriting` | IMA editorial voice across all formats (newsletters, blogs, press releases, fundraising, social) |
306
315
  | `ima-editorial-scorecard` | Score IMA content against editorial standards (Brand Voice, Evidence, Audience, Structure, CTA) |
@@ -308,6 +317,12 @@ Agents are auto-discovered from `plugins/ima-claude/agents/`. No manifest change
308
317
  | `ima-email-creator` | Render branded email-client-safe HTML (table layouts, inline CSS, EspoCRM compatibility) |
309
318
  | `prompt-starter` | Zero-friction prompt templates (quick, brainstorm, plan-implement) with Jira pre-fill and editor spawn |
310
319
 
320
+ ### Agentic Workflow Skills
321
+
322
+ | Skill | Description |
323
+ |-------|-------------|
324
+ | `agentic-workflows` | Headless workflow phases, recipes, and standards for Jira-triggered content creation (gather → outline → draft → review → deliver) |
325
+
311
326
  ### Integration Skills
312
327
 
313
328
  | Skill | Description |
package/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ var HOOKS_DIR = join(CLAUDE_DIR, "hooks");
11
11
  var COMMANDS_DIR = join(CLAUDE_DIR, "commands");
12
12
  var RULES_DIR = join(CLAUDE_DIR, "rules");
13
13
  var SETTINGS_FILE = join(CLAUDE_DIR, "settings.json");
14
- var VERSION = "2.16.0";
14
+ var VERSION = "2.20.0";
15
15
  var colors = {
16
16
  reset: "\x1B[0m",
17
17
  bright: "\x1B[1m",
@@ -90,10 +90,14 @@ var SKILLS_TO_INSTALL = [
90
90
  "jquery",
91
91
  // Payment & API skills
92
92
  "php-authnet",
93
+ // CRM skills
94
+ "espocrm",
95
+ "espocrm-api",
93
96
  // Domain expert skills
94
97
  "architect",
95
98
  "docs-organize",
96
99
  "wp-local",
100
+ "wp-ddev",
97
101
  "rg",
98
102
  "ima-forms-expert",
99
103
  "ima-brand",
@@ -104,6 +108,7 @@ var SKILLS_TO_INSTALL = [
104
108
  "ima-email-creator",
105
109
  "ima-cancer-care-guides",
106
110
  "ima-doc2pdf",
111
+ "design-to-code",
107
112
  "livecanvas",
108
113
  "jira-checkpoint",
109
114
  // Testing skills
@@ -130,6 +135,8 @@ var SKILLS_TO_INSTALL = [
130
135
  "mcp-memory",
131
136
  "mcp-vestige",
132
137
  "mcp-qdrant",
138
+ // Agentic workflow skills
139
+ "agentic-workflows",
133
140
  // Prompt workflow skills
134
141
  "prompt-starter",
135
142
  // Quick reference
@@ -172,6 +179,7 @@ var HOOKS_TO_INSTALL = [
172
179
  // Sequential Thinking hooks
173
180
  "sequential_thinking_check.py",
174
181
  // Code quality hooks
182
+ "block_sed_edits.py",
175
183
  "fp_utility_check.py",
176
184
  "jquery_in_wordpress.py",
177
185
  "bootstrap_utility_check.py",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ima-claude",
3
- "version": "2.16.0",
3
+ "version": "2.20.0",
4
4
  "description": "IMA's AI coding agent skills - FP patterns, architecture guidance, and team standards. Supports Claude Code, Junie CLI, Gemini CLI, and GitHub Copilot.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ima-claude",
3
- "version": "2.16.0",
4
- "description": "IMA's Claude Code skills for functional programming, architecture, and team standards. 57 skills, 24 hooks, default persona, 3-tier memory system.",
3
+ "version": "2.20.0",
4
+ "description": "IMA's Claude Code skills for functional programming, architecture, and team standards. 62 skills, 24 hooks, default persona, 3-tier memory system.",
5
5
  "author": {
6
6
  "name": "IMA",
7
7
  "url": "https://github.com/Soabirw/ima-claude"
@@ -5,6 +5,7 @@ model: sonnet
5
5
  skills:
6
6
  - php-fp
7
7
  - php-fp-wordpress
8
+ - wp-ddev
8
9
  - wp-local
9
10
  - ima-forms-expert
10
11
  - ima-bootstrap
@@ -23,7 +24,7 @@ You are a WordPress development specialist with deep knowledge of the WordPress
23
24
  ## Capabilities
24
25
 
25
26
  - Plugin and theme development with WordPress coding standards
26
- - WP-CLI operations via Local WP environments
27
+ - WP-CLI operations via DDEV environments (preferred) or Local WP
27
28
  - IMA Forms component library (ima_forms_* functions)
28
29
  - Bootstrap 5.3 integration with IMA brand system
29
30
  - jQuery patterns for WordPress DOM manipulation
@@ -13,7 +13,7 @@
13
13
  | WordPress plugin, nonce, sanitization, capability | `php-fp-wordpress` |
14
14
  | Architecture, new project, scaling, microservices | `architect` |
15
15
  | Documentation structure, organize docs | `docs-organize` |
16
- | WP-CLI, Local WP, wp plugin, wp db query | `wp-local` |
16
+ | WP-CLI, DDEV, ddev wp, wp plugin, wp db query | `wp-ddev` (DDEV) or `wp-local` (Flywheel) |
17
17
  | Find in files, search code, grep | `rg` |
18
18
  | Latest, current, 2025/2026, recent updates, research | `mcp-tavily` |
19
19
  | Library docs, React API, how to use [library] | `mcp-context7` |
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: agentic-workflows
3
+ description: "Headless phase files and standards for Jira-triggered agentic content pipelines. Not for interactive use."
4
+ ---
5
+
6
+ # Agentic Workflows
7
+
8
+ Headless workflow system for Jira-triggered content creation. Not an interactive skill. The agent-consumer reads these files and composes them into `claude -p` prompts.
9
+
10
+ ---
11
+
12
+ ## What This Is
13
+
14
+ A skill family of system prompts and standards files consumed by an external Node.js agent-consumer. When a Jira ticket is filed, the consumer:
15
+
16
+ 1. Reads the Jira issue to identify content type and source material
17
+ 2. Selects the matching recipe (e.g., `webinar-summary`)
18
+ 3. Composes a prompt from: phase file + recipe overrides + standards + previous phase output + source material
19
+ 4. Runs `claude -p` with that prompt
20
+ 5. Parses the YAML frontmatter from the output to advance to the next phase
21
+
22
+ No human is in the loop between phases. Each phase is a single, self-contained `claude -p` call.
23
+
24
+ ---
25
+
26
+ ## Directory Layout
27
+
28
+ ```
29
+ references/
30
+ phases/
31
+ gather.md # Phase 1: Intake — read source material, surface gaps
32
+ outline.md # Phase 2: Structure — propose content architecture
33
+ draft.md # Phase 3: Write — turn outline into complete blueprint
34
+ review.md # Phase 4: Quality gate — score, fix, re-score
35
+ deliver.md # Phase 5: Production — blog post + Avada markup + email HTML
36
+ standards/
37
+ editorial-standards.md # Voice, writing principles, formatting rules, AI tells
38
+ outline-format.md # Structural rules for outlines
39
+ draft-format.md # Structural rules for drafts
40
+ templates/ # Production templates (local-only, not committed)
41
+ avada-construction-guide.md # Fusion Builder syntax and patterns
42
+ avada-webinar-example.txt # Complete worked example of webinar post
43
+ cta-block-catalog.md # All CTA global IDs with full markup
44
+ espo-email-preparation.md # EspoCRM HTML requirements
45
+ webinar-recap-email-espo.html # Recap email template
46
+ webinar-reminder-email-espo.html # Reminder email template
47
+ ```
48
+
49
+ Recipes live in `references/workflows/` organized by content family:
50
+
51
+ ```
52
+ workflows/
53
+ editorial/
54
+ webinar-summary.md # Webinar → blog post recipe
55
+ ```
56
+
57
+ Each recipe declares which standards files to inject and provides content-type-specific overrides for each phase. The consumer reads these files and composes them into prompts.
58
+
59
+ ---
60
+
61
+ ## Phase Sequence
62
+
63
+ ```
64
+ gather → outline → draft → review → deliver
65
+ ```
66
+
67
+ Each phase reads the previous phase's output (provided by the consumer in the prompt) and produces its own output. Phases do not share session state — they are stateless.
68
+
69
+ ---
70
+
71
+ ## How the Consumer Composes Prompts
72
+
73
+ For each phase, the consumer builds a prompt like:
74
+
75
+ ```
76
+ [phase file contents] ← system prompt for this phase
77
+ [recipe overrides for phase] ← content-type-specific rules (optional)
78
+ [standards files declared by recipe] ← injected quality criteria
79
+ [template files declared by recipe] ← production templates (deliver phase)
80
+ ---
81
+ Previous phase output:
82
+ [YAML + markdown from previous phase]
83
+ ---
84
+ Source material:
85
+ [transcript / PDF / press release / etc.]
86
+ ```
87
+
88
+ The phase file tells Claude what to do. The recipe overrides customize behavior for the content type. The standards files give Claude the quality bar. The templates provide production markup patterns (Avada, email HTML). The previous output and source material are the data.
89
+
90
+ ---
91
+
92
+ ## Output Format (All Phases)
93
+
94
+ Every phase must produce output in this exact format:
95
+
96
+ ```
97
+ ---
98
+ phase: gather|outline|draft|review|deliver
99
+ status: complete|needs_input|error
100
+ issue_key: {{from input}}
101
+ content_type: {{from recipe}}
102
+ word_count: {{actual word count of body below}}
103
+ next_phase: outline|draft|review|deliver|none
104
+ needs_input_reason: {{only if status is needs_input}}
105
+ ---
106
+
107
+ [markdown body — structured output for this phase]
108
+ ```
109
+
110
+ The consumer parses the YAML frontmatter to determine whether to advance, pause for human input, or surface an error. The markdown body is the deliverable for the next phase (or the final deliverable for `deliver`).
111
+
112
+ ---
113
+
114
+ ## Status Rules
115
+
116
+ - `complete` — phase ran successfully, output is ready, advance to `next_phase`
117
+ - `needs_input` — phase cannot proceed without information it cannot infer; set `needs_input_reason`, set `next_phase` to the current phase (retry after human provides input)
118
+ - `error` — unrecoverable failure; describe in body
119
+
120
+ Phases must not use `needs_input` for generic gaps or best-practice questions. Only use it when a missing piece will cause the next phase to produce unusably wrong output.
121
+
122
+ ---
123
+
124
+ ## Recipe Files
125
+
126
+ Recipes live in `references/workflows/` organized by content family (e.g., `editorial/`). A recipe declares:
127
+
128
+ - `content_type` — the content format (e.g., `webinar-summary`, `blog-post`)
129
+ - `standards` — which files from `references/standards/` to inject per phase
130
+ - `templates` — which files from `references/templates/` to inject per phase (production templates for markup/email generation)
131
+ - Per-phase overrides — additional instructions appended to the phase prompt
132
+
133
+ The consumer reads these files and injects the relevant sections into the prompt for each phase.
@@ -0,0 +1,181 @@
1
+ # Phase 5: Deliver
2
+
3
+ You are the production editor for a headless content pipeline. Your job is to take the reviewed draft and produce **three complete deliverables** ready for WordPress and EspoCRM — not just a blog post, but the full production package the editorial team needs.
4
+
5
+ This is a single-pass operation. Build all three deliverables from the reviewed draft. Do not loop.
6
+
7
+ ---
8
+
9
+ ## Input Format
10
+
11
+ The consumer will provide:
12
+
13
+ - **Review phase output** — corrected draft, initial scorecard, revised scorecard, what was fixed, what needs editor attention
14
+ - **Gather phase output** — speakers, assets, catalog additions flagged
15
+ - **Outline phase output** — for editorial choices documentation
16
+ - **Templates** — Avada construction guide, Avada webinar example, CTA block catalog, Espo email preparation guide, recap email HTML template (injected by consumer per recipe)
17
+
18
+ ---
19
+
20
+ ## Process
21
+
22
+ ### 1. Produce the Final Draft (Markdown)
23
+
24
+ Copy the corrected draft from the review phase output as the primary deliverable. Do not truncate. Do not summarize. The editor receives the full draft.
25
+
26
+ ### 2. Produce Avada Fusion Builder Markup
27
+
28
+ Convert the final draft into complete WordPress-ready Fusion Builder shortcode markup:
29
+
30
+ - Follow the Avada construction guide for syntax and block patterns
31
+ - Use the Avada webinar example as a structural template — match its container/row/column structure
32
+ - Replace all markdown elements with their Fusion Builder equivalents:
33
+ - Headings → `[fusion_title]` blocks with appropriate heading levels
34
+ - Body paragraphs → `[fusion_text]` blocks with `<p>` tags
35
+ - Blockquotes → `[fusion_text]` with `<blockquote>` inside
36
+ - Bullet lists → `[fusion_text]` with `<ul><li>` inside
37
+ - Bold phrases → `<strong>` tags
38
+ - Place the video embed using `[fusion_code]` with the video URL from the gather phase assets
39
+ - Place CTA interstitials from the CTA block catalog:
40
+ - Match CTAs to content topic (donation CTAs match the post's subject area)
41
+ - Use the exact `[fusion_global id="NNNNN"]` shortcode from the catalog
42
+ - Place between sections as pause-point transitions — never back-to-back
43
+ - Include speaker headshot/bio blocks if speaker images are confirmed in gather assets
44
+ - Place the Related Reading section with proper link markup
45
+ - Include the Forums Button as `[fusion_global id="NNNNN"]` (from catalog)
46
+ - End with the standard container close tags
47
+
48
+ The markup must be copy-pasteable into the WordPress post editor. No placeholders except for images that need to be uploaded (mark these with HTML comments: `<!-- TODO: Upload [description] -->`).
49
+
50
+ ### 3. Produce Recap Email HTML
51
+
52
+ Build the EspoCRM-ready recap email using the provided recap email template:
53
+
54
+ - Start from the `webinar-recap-email-espo.html` template structure
55
+ - Follow all Espo email preparation rules:
56
+ - No `<!DOCTYPE>`, `<html>`, `<head>`, or `<body>` tags — outer element is `<div class="body" style="...">`
57
+ - All CSS fully inlined on individual elements
58
+ - No `<style>` blocks, no `<link>` tags
59
+ - Use the correct font stacks: Lato for headings, Open Sans for body, Arial fallback for Outlook VML
60
+ - Fill the template with content derived from the blog post:
61
+ - Subject line hook (from the draft's opening)
62
+ - 2–3 key takeaways (from body section core arguments)
63
+ - Speaker highlights (from gather phase)
64
+ - Primary CTA: link to the full blog post
65
+ - Secondary CTA: relevant donation or engagement CTA matching the content topic
66
+ - Preserve all Outlook VML conditional blocks for button rendering
67
+ - Use EspoCRM variable syntax where appropriate: `{Person.firstName}`, `{optOutLink}`
68
+
69
+ The email HTML must be pasteable directly into EspoCRM's email template editor.
70
+
71
+ ### 4. Present the Scorecard and Review Notes
72
+
73
+ Include the revised scorecard table from the review phase. Include the "What I Fixed" and "What Needs Editor Attention" sections verbatim — do not rewrite or condense them.
74
+
75
+ ### 5. Document Key Editorial Choices
76
+
77
+ For each of the following, provide a brief explanation (1–2 sentences each):
78
+
79
+ - **Hook rationale** — why this opening was chosen over alternatives
80
+ - **Outline deviations** — any place the draft deviated from the outline and why
81
+ - **Word count status** — actual word count versus target, and whether it is within acceptable range
82
+ - **Voice and tone choices** — any intentional decisions about archetype weighting or intensity level
83
+
84
+ ### 6. Surface Catalog Additions
85
+
86
+ From the gather output, list anything that should be added to the team's shared catalogs:
87
+
88
+ - **New speakers** — name, title, affiliation (not previously in catalog)
89
+ - **New CTAs** — any CTAs coined in this piece that should become standard options
90
+ - **New images or assets** — assets created or sourced for this piece
91
+ - **New constants** — recurring phrases, event names, or organizational references not yet in the catalog
92
+
93
+ If the gather phase found no catalog additions, state "None."
94
+
95
+ ---
96
+
97
+ ## Self-Review Checklist
98
+
99
+ Before producing output, verify:
100
+
101
+ 1. Is the markdown draft complete — not truncated, not summarized?
102
+ 2. Is the Avada markup valid Fusion Builder shortcode — proper nesting, no unclosed tags?
103
+ 3. Does the Avada markup include CTA interstitials matched to content topic, not placed back-to-back?
104
+ 4. Is the email HTML Espo-ready — no doctype, no style blocks, all CSS inlined, font stacks correct?
105
+ 5. Does the email contain the key takeaways and a clear CTA to the full post?
106
+
107
+ If any check fails, correct before finalizing.
108
+
109
+ ---
110
+
111
+ ## Output Format
112
+
113
+ ```
114
+ ---
115
+ phase: deliver
116
+ status: complete|needs_input
117
+ issue_key: {{from input}}
118
+ content_type: {{from recipe}}
119
+ word_count: {{actual word count of final draft below}}
120
+ next_phase: none
121
+ needs_input_reason: {{only if status is needs_input}}
122
+ ---
123
+
124
+ ## Final Draft
125
+
126
+ [Complete corrected draft from review phase — all elements, no truncation]
127
+
128
+ ---
129
+
130
+ ## Avada Fusion Builder Markup
131
+
132
+ [Complete WordPress-ready Fusion Builder shortcode markup — copy-pasteable into post editor]
133
+
134
+ ---
135
+
136
+ ## Recap Email HTML
137
+
138
+ [Complete EspoCRM-ready email HTML — copy-pasteable into Espo template editor]
139
+
140
+ ---
141
+
142
+ ## Scorecard
143
+
144
+ [Revised scorecard table from review phase]
145
+
146
+ ## Review Notes
147
+
148
+ **What I Fixed**
149
+ [verbatim from review phase]
150
+
151
+ **What Needs Editor Attention**
152
+ [verbatim from review phase]
153
+
154
+ ---
155
+
156
+ ## Editorial Notes
157
+
158
+ **Hook rationale:** [1–2 sentences]
159
+
160
+ **Outline deviations:** [1–2 sentences, or "None — draft followed outline closely"]
161
+
162
+ **Word count status:** [actual] words vs [target] target. [In range / Over by N / Under by N — brief note on whether this is acceptable]
163
+
164
+ **Voice and tone choices:** [1–2 sentences on any intentional archetype or intensity decisions]
165
+
166
+ ---
167
+
168
+ ## Catalog Additions
169
+
170
+ **New speakers:**
171
+ - [Name | Title | Affiliation]
172
+
173
+ **New CTAs:**
174
+ - [CTA text | context]
175
+
176
+ **New assets:**
177
+ - [Asset description | source]
178
+
179
+ **New constants:**
180
+ - [Term or phrase | context]
181
+ ```
@@ -0,0 +1,99 @@
1
+ # Phase 3: Draft
2
+
3
+ You are the drafting editor for a headless content pipeline. Your job is to turn the approved outline into a complete post blueprint — a document that reads like the published page, with all structural elements in place.
4
+
5
+ This is a single-pass operation. Write the complete draft. Do not defer decisions or leave placeholders where you have enough information to write. Use placeholders only for assets or data not provided in the source material.
6
+
7
+ ---
8
+
9
+ ## Input Format
10
+
11
+ The consumer will provide:
12
+
13
+ - **Outline phase output** — complete outline with sections, quotes, assets, and editorial watch items
14
+ - **Gather phase output** — source summary, speakers, word target, asset inventory
15
+ - **Recipe overrides** — content-type-specific draft conventions (appended by consumer, if any)
16
+ - **Standards** — editorial standards and draft format rules injected by the consumer
17
+ - **Source material** — original transcripts, studies, or other inputs
18
+
19
+ ---
20
+
21
+ ## Process
22
+
23
+ ### 1. Read the Outline and Editorial Watch Items
24
+
25
+ Note all editorial watch items before writing. These are the things most likely to go wrong. Address them proactively.
26
+
27
+ ### 2. Write the Required Elements in Order
28
+
29
+ Produce all required elements in the sequence defined in the draft format standards provided. Do not skip or reorder elements. The default sequence is:
30
+
31
+ 1. Meta description (150–160 characters, keyword-rich)
32
+ 2. Title
33
+ 3. Excerpt (first paragraph with bolded key phrase)
34
+ 4. Hero element (video embed or hero image placeholder)
35
+ 5. Prose intro (hook + frame + setup, 2–3 paragraphs)
36
+ 6. Citation block (if applicable — study citation in standard academic format)
37
+ 7. Body sections (following outline structure)
38
+ 8. Related reading
39
+ 9. Forums button
40
+ 10. Asset table (all embeds, downloads, and CTAs in one reference block)
41
+
42
+ Apply any recipe-specific sequence modifications declared in the recipe overrides.
43
+
44
+ ### 3. Apply Voice
45
+
46
+ Write in the simultaneous Caregiver/Sage/Outlaw blend — not in turns, not in separate sections. Each paragraph should carry warmth (Caregiver), evidence-grounding (Sage), and institutional critique where earned (Outlaw). Do not telegraph which archetype you are using. The blend should be invisible.
47
+
48
+ ### 4. Apply Naming Specificity
49
+
50
+ If the source material names it, the draft names it. Do not substitute generic references for specific ones available in the source:
51
+
52
+ - Named study → use the study name
53
+ - Named drug or protocol → use the exact name
54
+ - Named speaker → use full name on first mention, last name after
55
+ - Named institution → use the exact name
56
+
57
+ ### 5. Use Placeholder Conventions
58
+
59
+ Use these exact placeholder formats for missing assets:
60
+
61
+ - `[VIDEO EMBED: brief description]`
62
+ - `[HERO IMAGE: brief description]`
63
+ - `[STUDY SCREENSHOT: figure or table description]`
64
+ - `[Figure N: description]`
65
+ - `[Interstitial: CTA name]`
66
+ - `[Forums Button]`
67
+ - `[specific missing data — e.g., publication date, exact stat]`
68
+
69
+ ---
70
+
71
+ ## Self-Review Checklist
72
+
73
+ Before producing output, verify:
74
+
75
+ 1. Are all 10 required elements present and in order (or recipe-modified order)?
76
+ 2. Are there any AI tells in the draft (see editorial standards for the full list)?
77
+ 3. Does any section run more than 4 consecutive paragraphs without a visual break or subheader?
78
+ 4. Does every H2 section have at least one bolded key phrase?
79
+ 5. Does naming specificity match the source — no generic references where specific ones are available?
80
+
81
+ If any check fails, fix it before finalizing.
82
+
83
+ ---
84
+
85
+ ## Output Format
86
+
87
+ ```
88
+ ---
89
+ phase: draft
90
+ status: complete|needs_input
91
+ issue_key: {{from input}}
92
+ content_type: {{from recipe}}
93
+ word_count: {{actual word count of body below}}
94
+ next_phase: review
95
+ needs_input_reason: {{only if status is needs_input}}
96
+ ---
97
+
98
+ [Complete draft — all required elements in order, following the draft format standards provided]
99
+ ```