fix(book-pipeline): inference hints + LLM-filled context vars + roster roundtable
- book_research.yml: add inference hint when genre_name/genre_audience/research_focus are empty
- book_outline.yml: add inference hint for genre/audience; change package schema to ask LLM
to FILL genre_name/genre_audience/prose_style/chapter_target_words from the outline text
(was using {template_vars} which stay empty unless planning sets them)
- devon/agent.yml: add chapter_roundtable to supported_templates
- lane/agent.yml: add chapter_roundtable to supported_templates
(all three editors now participate in roundtable — roster-driven, not hardcoded)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -21,4 +21,5 @@ manages: []
|
|||||||
department: editorial
|
department: editorial
|
||||||
supported_templates:
|
supported_templates:
|
||||||
- chapter_review
|
- chapter_review
|
||||||
|
- chapter_roundtable
|
||||||
- book_editorial
|
- book_editorial
|
||||||
|
|||||||
@@ -20,3 +20,4 @@ manages: []
|
|||||||
department: editorial
|
department: editorial
|
||||||
supported_templates:
|
supported_templates:
|
||||||
- chapter_review
|
- chapter_review
|
||||||
|
- chapter_roundtable
|
||||||
|
|||||||
@@ -30,8 +30,9 @@ steps:
|
|||||||
hint: |
|
hint: |
|
||||||
You are {agent.name}. This is round {task.iteration} of the creative boardroom.
|
You are {agent.name}. This is round {task.iteration} of the creative boardroom.
|
||||||
|
|
||||||
GENRE: {genre_name} | AUDIENCE: {genre_audience}
|
GENRE: {genre_name|[infer from project description if blank]}
|
||||||
STRUCTURE GUIDE: {outline_structure}
|
AUDIENCE: {genre_audience|[infer from project description if blank]}
|
||||||
|
STRUCTURE GUIDE: {outline_structure|[use standard 3-act structure with chapter hooks if blank]}
|
||||||
|
|
||||||
The room is deciding on ONE book concept to write. The trend research
|
The room is deciding on ONE book concept to write. The trend research
|
||||||
is in the DELIVERABLES and RAG above — everyone has read it.
|
is in the DELIVERABLES and RAG above — everyone has read it.
|
||||||
@@ -145,15 +146,21 @@ steps:
|
|||||||
You are the Project Manager. The outline above describes a multi-chapter book.
|
You are the Project Manager. The outline above describes a multi-chapter book.
|
||||||
Convert EVERY chapter in the outline into a sequential create_task action for Iris.
|
Convert EVERY chapter in the outline into a sequential create_task action for Iris.
|
||||||
|
|
||||||
|
CRITICAL — Fill in these values from the outline document you just wrote:
|
||||||
|
- genre_name: the exact genre (e.g., "YA Romance", "Science Fiction", "Literary Fiction")
|
||||||
|
- genre_audience: the target audience (e.g., "Young adults 14–18", "Adult romance readers")
|
||||||
|
- prose_style: copy the 3-sentence Voice & Tone Guide from the outline exactly
|
||||||
|
- chapter_target_words: the target word count per chapter as a number string (e.g., "3500")
|
||||||
|
- chapter_ref: zero-padded two-digit chapter number, e.g. "ch-01", "ch-02", ... "ch-18"
|
||||||
|
|
||||||
Rules:
|
Rules:
|
||||||
- One action per chapter (minimum {chapter_count} chapters)
|
- One action per chapter (minimum {chapter_count|10} chapters)
|
||||||
- task_name format: "Write Chapter N: [Chapter Title]"
|
- task_name format: "Write Chapter N: [Chapter Title]"
|
||||||
- agent_name: always "Iris"
|
- agent_name: always "Iris"
|
||||||
- task_type: always "book_chapter"
|
- task_type: always "book_chapter"
|
||||||
- description: Include the chapter summary, POV character, emotional beat, and cliffhanger from the outline.
|
- description: Include the chapter summary, POV character, emotional beat, and cliffhanger from the outline.
|
||||||
Start with: "You are writing Chapter N of [Book Title]. [chapter summary]. POV: [character name]."
|
Start with: "You are writing Chapter N of [Book Title]. [chapter summary]. POV: [character name]."
|
||||||
- depends_on: the exact task_name of the PREVIOUS chapter (empty string for Chapter 1)
|
- depends_on: the exact task_name of the PREVIOUS chapter (empty string for Chapter 1)
|
||||||
- chapter_ref: zero-padded two-digit chapter number, e.g. "ch-01", "ch-02", ... "ch-18"
|
|
||||||
|
|
||||||
The depends_on chain creates sequential writing — each chapter waits for the previous to be committed.
|
The depends_on chain creates sequential writing — each chapter waits for the previous to be committed.
|
||||||
schema:
|
schema:
|
||||||
@@ -165,10 +172,10 @@ steps:
|
|||||||
description: "string"
|
description: "string"
|
||||||
depends_on: "string"
|
depends_on: "string"
|
||||||
context:
|
context:
|
||||||
genre_name: "{genre_name}"
|
genre_name: "string"
|
||||||
genre_audience: "{genre_audience}"
|
genre_audience: "string"
|
||||||
prose_style: "{prose_style}"
|
prose_style: "string"
|
||||||
chapter_target_words: "{chapter_target_words}"
|
chapter_target_words: "string"
|
||||||
chapter_ref: "string"
|
chapter_ref: "string"
|
||||||
|
|
||||||
- type: close
|
- type: close
|
||||||
|
|||||||
@@ -26,14 +26,17 @@ builders:
|
|||||||
steps:
|
steps:
|
||||||
- type: think
|
- type: think
|
||||||
hint: |
|
hint: |
|
||||||
You are researching the current {genre_name} fiction landscape.
|
You are researching the current fiction landscape for this book project.
|
||||||
|
|
||||||
TARGET AUDIENCE: {genre_audience}
|
GENRE: {genre_name|[infer from the project description above]}
|
||||||
GENRE: {genre_name}
|
TARGET AUDIENCE: {genre_audience|[infer from the project description above]}
|
||||||
RESEARCH FOCUS: {research_focus}
|
RESEARCH FOCUS: {research_focus|[infer: what trends, tropes, and reader expectations matter most for this project?]}
|
||||||
|
|
||||||
|
NOTE: If GENRE, TARGET AUDIENCE, or RESEARCH FOCUS are blank above, read the
|
||||||
|
PROJECT DESCRIPTION section and infer them from the project's stated goal.
|
||||||
|
|
||||||
Your mission: identify the single best search query to find what's TRENDING RIGHT NOW
|
Your mission: identify the single best search query to find what's TRENDING RIGHT NOW
|
||||||
in {genre_name} fiction in 2025–2026.
|
in this fiction genre in 2025–2026.
|
||||||
|
|
||||||
State your analysis, then on the last line write:
|
State your analysis, then on the last line write:
|
||||||
SEARCH QUERY: [your query here]
|
SEARCH QUERY: [your query here]
|
||||||
@@ -49,7 +52,9 @@ steps:
|
|||||||
You have live search results above (in PRIOR RESULTS).
|
You have live search results above (in PRIOR RESULTS).
|
||||||
If the web search results are empty or unavailable, use your expert training knowledge.
|
If the web search results are empty or unavailable, use your expert training knowledge.
|
||||||
|
|
||||||
Synthesize the findings into an actionable publishing brief for a {genre_name} book:
|
Infer the GENRE and AUDIENCE from the PROJECT DESCRIPTION if not explicitly provided above.
|
||||||
|
|
||||||
|
Synthesize the findings into an actionable publishing brief for this book:
|
||||||
|
|
||||||
1. TOP TRENDING — What sub-genres and themes are hot right now? Rank them.
|
1. TOP TRENDING — What sub-genres and themes are hot right now? Rank them.
|
||||||
2. AUDIENCE INSIGHTS — What does the target reader ({genre_audience}) demand?
|
2. AUDIENCE INSIGHTS — What does the target reader ({genre_audience}) demand?
|
||||||
|
|||||||
Reference in New Issue
Block a user