- title_conflict_check.yml: replace identity.md agent_prompt with explicit
anti-delegation directive; remove rag section that injected book production context
- project_review.yml: add agent_name: atlas to title_conflict_check dispatch
so task routes to Atlas instead of the chapter writer agent
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove project_index dispatch from chapter_production.yml entirely.
chapter_production should ONLY dispatch book_chapter. The project_index
dispatch belongs to book_editorial (which already handles it correctly).
This was the root cause of the CLM hallucination cascade:
pulse_check -> project_review -> chapter_production -> project_index -> marketing_campaign (infinite loop)
- Add clm_dispatch_gate guard in project_index.yml. project_index now checks
whether its task message is a real book-complete signal or a generic/none
message. If gate is 'skip', clm_dispatch_content is 'none' and the enqueue
call returns gracefully (optional: true). Only fires when triggered by
book_editorial with a legitimate completion message.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- book_chapter.yml: add mini-package step after SELF-CHECK to extract chapter_number/chapter_ref
before document steps run. Without this every chapter was saved as Chapter_chapter-number_draft.md.
Also add source_step to both document steps so they read from correct prior step.
- DocumentStepHandler.cs (C#): add source_step support (template change depends on this).
- chapter_roundtable.yml: remove broken depends_on from chapter_polish spawn that caused deadlock
(Polish: {chapter_ref_prev} never exists for ch-01, blocking all polish tasks).
- project_index.yml: Loop 2 CLM dispatch -- when book is complete, enqueue marketing_campaign
to crimson_leaf_marketing/book-marketing-agency.
- project.yml files: fill in name, goal, genre, lead_author for all 3 CLP projects.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Package step schema now includes chapter_ref and chapter_number so the LLM
extracts them from the task name even when context vars are missing.
- Previously removed requires: block was the only guard; now the package step
itself self-heals by asking the LLM to derive these values.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>