This change reorganizes the repository structure to keep the root directory
clean. All 15 project folders are now nested under projects/, alongside
infrastructure directories (agents/, templates/, deliverables/, rag/, skills/).
This allows the repository to grow without polluting the core service directories.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Skills guides wired (all were dead code — no templates declared skills:):
- book_chapter.yml: YAFictionGuide + RomanceFictionGuide + SciFiFictionGuide
- chapter_review.yml: same (Devon, Lane, Cora reviewers now have genre context)
- chapter_roundtable.yml: same (debate participants use genre craft knowledge)
- chapter_polish.yml: same (Iris polishes with full genre guide in context)
- short_story.yml: same
- blog_write.yml: BlogWritingGuide
- recipe_develop.yml: RecipeWritingGuide
All templates updated to include 'skills' in sections list so guides
are injected as SKILLS & GUIDES block in the prompt.
Iris RAG deduplication:
- agents/iris/rag/agent.rag.md: 15 near-identical entries -> 2 canonical
Entry 1: Bible & Continuity Check requirement
Entry 2: Editorial assignments (Devon/Lane/Cora with their roles)
13 duplicates removed
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chapter_roundtable.yml:
- Reduce max_iterations 9 → 5 (3 rounds of 3 editors is enough; 9 was
burning credits in a retry loop after credit exhaustion)
- Add explicit 'Once any participant outputs CONSENSUS REACHED, the
debate is over' — prevents continuation into wasted rounds
planning.yml:
- Add ANTI-HALLUCINATION RULE FOR AGENTS block: explicitly names the
known ghost agents (Worldbuilder, Prose Engine, Plot Architect, etc.)
and forbids their use; maps task types to canonical CLP agents so
planning LLM has unambiguous fallback assignments
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- 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>
With 3 agents and max_iterations=3, effective_max=max(3,3)=3, meaning
each agent speaks exactly once per roundtable — no back-and-forth.
Adjudicator correctly rejected these as incomplete (score=0-58 on
completeness/consensus_clarity/actionability).
9 iterations = 3 full rounds for 3 agents, allowing genuine debate:
Round 1: Initial assessments | Round 2: Responses | Round 3: Consensus
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- book_chapter.yml: spawn Roundtable task with agent_name: Devon
(dispatcher requires at least one agent; Devon chairs the roundtable
while rotate_participants still drafts all available editors)
- chapter_roundtable.yml: spawn Polish task with agent_name: Iris
(Iris is the designated chapter polish author)
Previously: dispatch_create_task_skipped reason=no_agent for both tasks.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>