Files
crimson_leaf_publishing/templates/blog_write.yml
David Baity 4c9222960d fix: template prompt bloat and variable substitution failures
- chapter_polish: remove sections:deliverables — chapter text already in
  {chapter_text}; this caused 150KB+ prompts for late chapters (40MB logs)
- chapter_roundtable: require structured CONSENSUS REACHED block so
  key_changes is always formatted as an extractable string; change
  key_changes schema from list to string to match
- book_chapter: remove sections:history to reduce context; restructure
  Pass 0 to plan-only (no prose output) so the chapter is only written
  once in Pass 1 instead of twice; add explicit instruction in package
  hint to copy full chapter_text into spawn context
- short_story: remove sections:history and sections:deliverables (standalone
  task, needs neither); restructure Pass 0 to plan-only, Pass 1 to write;
  add note to handle literal {genre_name} placeholders gracefully
- recipe_develop, ai_article_write, blog_write: remove sections:history
  (these standalone tasks do not need full project conversation history;
  deliverables kept so they can read the research/plan file)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-12 09:05:45 -04:00

89 lines
2.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: blog_write
description: "Write a standalone blog post — draft, polish, deliver."
debug: true
system: agent_prompt
agent_prompt:
- "= identity.md"
- "agent.rag.json"
sections:
- agent
- project
- rag
- deliverables
- message
- rejection_feedback
- instructions
steps:
- type: think
max_tokens: 4000
hint: |
Your task message contains the blog content brief. Follow it exactly.
Before writing, confirm:
- TOPIC and TARGET READER
- HOOK: the first sentence drops the reader into a real scenario or provocative question
- PROMISE: the one thing they walk away with
- KEY POINTS to cover
- TONE and WORD COUNT TARGET
- CALL TO ACTION
Write the full blog post:
- # Title as H1 (make it specific and curiosity-driven, not generic)
- Optional subhead in italics
- Opening hook: first 23 sentences pull the reader in immediately
- Body: 35 sections with bold subheadings, short readable paragraphs
- At least one concrete example, number, or real scenario per section
- "Try This Week" or equivalent action section before the closing
- Memorable closing line that reinforces the promise
Tone rules:
- Peer-to-peer. Write like a knowledgeable friend, not a corporate brochure.
- Use "you" and "your" — not "one" or "the reader."
- Short sentences preferred. No filler paragraphs.
- No listicles of 10+ items without grouping them into themes.
- type: think
max_tokens: 4000
model: power
hint: |
Read your draft as the target reader would on their phone.
Apply these editorial passes in sequence:
1. CUT — eliminate any warmup sentences, vague generalities, or brochure-speak
2. SHARPEN — every subheading should be scannable and specific
3. HOOK CHECK — does the opening pull in the first two sentences?
4. CTA CHECK — is the call to action specific and doable this week?
5. VOICE CHECK — does it sound human and direct throughout?
Target word count: stay within the specified range. Quality over quantity.
Output ONLY the polished final blog post starting with # [Title].
No commentary, no "Pass 2" label, no preamble.
- type: document
filename: "{{task_name_slug}}"
- type: close
rag_update: true
adjudication:
enabled: true
pass_threshold: 80
deliverable_type: consumer
criteria:
hook_strength:
weight: 30
description: "Opening immediately engages the target reader"
prose_quality:
weight: 30
description: "Writing is clear, direct, and human — no brochure-speak"
substance:
weight: 25
description: "Content is specific, useful, and backed by real examples"
structure:
weight: 15
description: "Scannable format with clear flow from hook to CTA"