sprint 81: fix chapter filename interpolation, chapter_polish deadlock, Loop 2 CLM dispatch, project.yml data
- 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>
This commit is contained in:
@@ -293,9 +293,26 @@ steps:
|
|||||||
Start the chapter directly with the chapter title and first line.
|
Start the chapter directly with the chapter title and first line.
|
||||||
No preamble or commentary within the chapter text.
|
No preamble or commentary within the chapter text.
|
||||||
|
|
||||||
# Commit chapter draft now -- last_text() = self-check output (step 2). Must come before
|
# Extract chapter_number and chapter_ref from the PASS 1 chapter text before any document
|
||||||
# PASS 3 think so the character-state extraction does not overwrite last_text().
|
# steps run. Without this, {chapter_number}/{chapter_ref} are unresolved at document time
|
||||||
|
# and filenames become "Chapter_chapter-number_draft.md" (slug-cleaned literal key names).
|
||||||
|
# source_step: 1 = PASS 1 output, which begins "Chapter N: Title". Cheap call (max_tokens: 150).
|
||||||
|
- type: package
|
||||||
|
source_step: 1
|
||||||
|
max_tokens: 150
|
||||||
|
hint: |
|
||||||
|
The chapter draft above starts with a chapter title line such as "Chapter 5: Some Title".
|
||||||
|
Extract:
|
||||||
|
- chapter_number: the plain chapter number as a string (e.g. "5")
|
||||||
|
- chapter_ref: zero-padded two-digit format (e.g. "ch-05" for chapter 5)
|
||||||
|
schema:
|
||||||
|
chapter_number: string
|
||||||
|
chapter_ref: string
|
||||||
|
|
||||||
|
# Commit chapter draft now. chapter_number is in ContextVars from the package step above.
|
||||||
|
# source_step: 2 = SELF-CHECK output (step 2); required because LastText() now = package JSON.
|
||||||
- type: document
|
- type: document
|
||||||
|
source_step: 2
|
||||||
filename: "Chapter_{chapter_number}_draft"
|
filename: "Chapter_{chapter_number}_draft"
|
||||||
primary_deliverable: true
|
primary_deliverable: true
|
||||||
strip_before_marker: "---BEGIN CHAPTER---"
|
strip_before_marker: "---BEGIN CHAPTER---"
|
||||||
@@ -416,14 +433,15 @@ steps:
|
|||||||
|
|
||||||
- type: rag_write
|
- type: rag_write
|
||||||
asset_id: "character-state"
|
asset_id: "character-state"
|
||||||
source_step: 4 # PASS 3 character-state extraction; explicit to avoid last_text() falling back to chapter text
|
source_step: 5 # PASS 3 character-state extraction; explicit to avoid last_text() falling back to chapter text
|
||||||
max_chars: 4000
|
max_chars: 4000
|
||||||
|
|
||||||
- type: document
|
- type: document
|
||||||
|
source_step: 5
|
||||||
filename: "character-state-{chapter_ref}"
|
filename: "character-state-{chapter_ref}"
|
||||||
|
|
||||||
- type: package
|
- type: package
|
||||||
source_step: 4 # PASS 3 -- character-state extraction (compact, describes permanent changes)
|
source_step: 5 # PASS 3 -- character-state extraction (compact, describes permanent changes)
|
||||||
max_tokens: 4000
|
max_tokens: 4000
|
||||||
hint: |
|
hint: |
|
||||||
The draft chapter has been written, self-checked, and committed.
|
The draft chapter has been written, self-checked, and committed.
|
||||||
|
|||||||
Reference in New Issue
Block a user