Sprint 61k — Template & Pipeline Correctness Audit

- Fix {task.prompt} → {task.message} in all marketing templates (6 files)
- Add author_bio.yml and ad_copy.yml templates for crimson_leaf_marketing
- Add author_bio task_type to marketing_campaign.yml package schema
- Fix book_outline.yml: remove {prose_style} literal, add anti-truncation rule, fix scifi routing
- Fix InputFromUser.yml: echo full operator message in think output
- Fix planning.yml: add agent:Nova top-level field to lock chair
- Fix publishing genesis.yml: fix {task.message} variable and hardcode Nova title
- Add professional_title to AgentContext and build_state_map
- Increase _DEFAULT_MAX_RAG_CHARS from 4000 to 8000
- Fix adj_pass_rate=0.0: thread adjudication criteria through C# and Python

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Baity
2026-03-30 10:35:51 -04:00
parent 8eacfe0cd9
commit b4616ea027
7 changed files with 193 additions and 6 deletions

104
templates/ad_copy.yml Normal file
View File

@@ -0,0 +1,104 @@
name: ad_copy
description: "Write platform-specific advertising copy for paid campaigns across Meta, Google, and Amazon."
system: agent_prompt
agent_prompt:
- "= identity.md"
sections:
- agent
- project
- rag
- message
steps:
- type: think
agent: Leo
hint: |
You are Leo, Marketing Strategist at Crimson Leaf Marketing.
AD COPY BRIEF: {task.message}
Write a COMPLETE AD COPY PACKAGE covering all required platforms.
For each platform write the full set of variants — not placeholders.
════════════════════════════════════════
META ADS (Facebook + Instagram)
════════════════════════════════════════
## META AD SET 1 — Awareness
- HEADLINE (40 chars max): [the scroll-stopping claim]
- PRIMARY TEXT (125 chars shown, 500 chars total): [full copy — hook, value, CTA]
- LINK DESCRIPTION (30 chars max): [below the image]
- CTA BUTTON: [Shop Now / Learn More / Get Offer]
- TARGET: [audience segment and interest targeting notes]
- VISUAL NOTE: [what the image/video should show]
## META AD SET 2 — Consideration
[Same format — different angle, social proof or curiosity-driven]
## META AD SET 3 — Conversion / Retargeting
[Same format — urgency or offer-focused, for people who've seen ad 1-2]
════════════════════════════════════════
GOOGLE SEARCH ADS
════════════════════════════════════════
## GOOGLE AD GROUP 1 — [keyword theme]
Headline 1 (30 chars): [keyword-rich]
Headline 2 (30 chars): [value proposition]
Headline 3 (30 chars): [CTA or differentiator]
Description 1 (90 chars): [full sentence, benefit-led]
Description 2 (90 chars): [second angle or social proof]
Keywords: [58 exact/phrase match keywords]
## GOOGLE AD GROUP 2 — [different keyword theme]
[Same format]
════════════════════════════════════════
AMAZON ADS (if applicable — book products)
════════════════════════════════════════
## AMAZON SPONSORED PRODUCT AD
- Headline (50 chars): [benefit-driven, book-specific]
- Custom text (150 chars): [what makes this book worth buying right now]
- Targeting strategy: [categories, ASINs, keywords]
- Bid notes: [suggested bid range reasoning]
## AMAZON SPONSORED BRAND AD
- Brand headline (50 chars): [author/series brand]
- Store spotlight: [3 products/titles to feature]
- Tagline (30 chars): [memorable series/brand line]
════════════════════════════════════════
AD COPY RULES
════════════════════════════════════════
- Every headline must stand alone — assume the image won't load
- Lead with the reader's desire or pain, not the product's features
- Never start with "Are you..." — start with the claim
- Use RAG context for accurate book details — no invented plot points
- CTAs are specific: "Start reading free" beats "Learn more"
- Each platform variant must be meaningfully different — not paraphrased copies
- type: document
filename: "{{task_name_slug}}-ad-copy"
- type: close
rag_update: true
adjudication:
enabled: true
pass_threshold: 75
deliverable_type: marketing_copy
criteria:
platform_specificity:
weight: 30
description: "Each platform's copy respects its format constraints and audience mindset"
hook_strength:
weight: 25
description: "Headlines and opening lines earn attention without resorting to clickbait"
cta_quality:
weight: 25
description: "CTAs are specific, low-friction, and matched to campaign objective"
completeness:
weight: 20
description: "All three platforms present with full variant sets per format spec"

83
templates/author_bio.yml Normal file
View File

@@ -0,0 +1,83 @@
name: author_bio
description: "Write a professional author bio and media kit for press, social, and book listings."
system: agent_prompt
agent_prompt:
- "= identity.md"
sections:
- agent
- project
- rag
- message
steps:
- type: think
agent: Zara
hint: |
You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing.
AUTHOR BIO BRIEF: {task.message}
Write a COMPLETE AUTHOR BIO & MEDIA KIT. Include all of the following sections:
## SHORT BIO (50 words)
For jacket copy, social profiles, and press mentions.
Third person. Hook first — lead with what makes this author distinct, not where they grew up.
End with one memorable detail or current project.
## MEDIUM BIO (150 words)
For conference programs, podcast introductions, and speaking engagements.
Third person. Opens with the strongest credential or angle.
Covers: writing background, this book's significance, one or two humanizing details.
Closes with location and current project.
## LONG BIO (300 words)
For press kits, media pages, and grant applications.
Third person. Full narrative arc: origin, journey, this work, where they're going.
Integrate accolades, influences, and thematic obsessions naturally.
## FIRST-PERSON "ABOUT ME" (100 words)
For author website "About" page.
Conversational, warm, direct address ("I write...").
Show personality — not a CV recitation.
## SOCIAL HANDLE BIOS
- Twitter/X (160 chars): punchy, personality-first, include main genre + book
- Instagram (150 chars): voice-driven, can use line breaks and one or two emojis
- LinkedIn (220 chars): professional framing, credentials first
## AUTHOR PHOTO CAPTION
One sentence, third person, for photo credit lines.
## MEDIA CONTACT BLOCK
Name / Email / Phone / Website / Social handles
TONE RULES:
- The author is a person, not a brand. Write with warmth and specificity.
- Avoid: "award-winning", "debut novelist", "passionate about", "journey"
- Every bio must mention the book title and one concrete detail about its content.
- Read the RAG context for actual book/author details — do NOT invent credentials.
- type: document
filename: "{{task_name_slug}}-author-bio"
- type: close
rag_update: true
adjudication:
enabled: true
pass_threshold: 75
deliverable_type: marketing_copy
criteria:
voice_authenticity:
weight: 30
description: "Bio reads like a real person, not a press release — specific details, no generic praise"
length_variants:
weight: 25
description: "All four bio lengths are present and appropriately sized for their use case"
social_optimization:
weight: 25
description: "Social bios fit platform character limits and match platform tone"
completeness:
weight: 20
description: "All sections present: short/medium/long bio, first-person, social bios, contact block"

View File

@@ -15,7 +15,7 @@ steps:
hint: | hint: |
You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing. You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing.
CAMPAIGN BRIEF: {task.prompt} CAMPAIGN BRIEF: {task.message}
Write a COMPLETE EMAIL MARKETING SEQUENCE. For each email include: Write a COMPLETE EMAIL MARKETING SEQUENCE. For each email include:
- EMAIL #: [sequence number and send timing, e.g. "Email 1: Launch Day"] - EMAIL #: [sequence number and send timing, e.g. "Email 1: Launch Day"]

View File

@@ -17,7 +17,7 @@ steps:
You are Maya, Director of Marketing Operations at Crimson Leaf Marketing. You are Maya, Director of Marketing Operations at Crimson Leaf Marketing.
A new marketing project has been created and needs its FIRST task. A new marketing project has been created and needs its FIRST task.
PROJECT BRIEF: {task.prompt} PROJECT BRIEF: {task.message}
CRITICAL RULE: Spawn EXACTLY ONE task of type `marketing_campaign` assigned to Maya. CRITICAL RULE: Spawn EXACTLY ONE task of type `marketing_campaign` assigned to Maya.
NEVER use `planning`. NEVER use any agent other than Maya for this entry-point task. NEVER use `planning`. NEVER use any agent other than Maya for this entry-point task.

View File

@@ -17,7 +17,7 @@ steps:
hint: | hint: |
You are Maya, Director of Marketing Operations. You are Maya, Director of Marketing Operations.
CAMPAIGN BRIEF: {task.prompt} CAMPAIGN BRIEF: {task.message}
Write a complete CAMPAIGN STRATEGY DOCUMENT covering: Write a complete CAMPAIGN STRATEGY DOCUMENT covering:
@@ -45,7 +45,7 @@ steps:
description: "string — full brief for this content piece: product, audience, channel, phase, tone, CTA, word count" description: "string — full brief for this content piece: product, audience, channel, phase, tone, CTA, word count"
agents: agents:
- "string — Zara (for copy/creative), Leo (for strategy/research)" - "string — Zara (for copy/creative), Leo (for strategy/research)"
task_type: "string — one of: social_media_pack, email_campaign, press_release, ad_copy, campaign_strategy" task_type: "string — one of: social_media_pack, email_campaign, press_release, ad_copy, author_bio, campaign_strategy"
priority: 2 priority: 2
max_tasks: 8 max_tasks: 8
insert_children: true insert_children: true

View File

@@ -15,7 +15,7 @@ steps:
hint: | hint: |
You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing. You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing.
PRESS RELEASE BRIEF: {task.prompt} PRESS RELEASE BRIEF: {task.message}
Write a PROFESSIONAL PRESS RELEASE following AP Style. Structure: Write a PROFESSIONAL PRESS RELEASE following AP Style. Structure:

View File

@@ -16,7 +16,7 @@ steps:
hint: | hint: |
You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing. You are Zara, Lead Creative Copywriter at Crimson Leaf Marketing.
CAMPAIGN BRIEF: {task.prompt} CAMPAIGN BRIEF: {task.message}
Write a COMPLETE SOCIAL MEDIA CONTENT PACK. Structure it by platform: Write a COMPLETE SOCIAL MEDIA CONTENT PACK. Structure it by platform: