idle-draft: idle-subscription dispatcher for the writing pipeline

Elapsed-paced gates, bounded-parallel event-driven dispatch, filesystem-
derived stages with thin human-gate state, citation validation with
quarantine, credential parity check, prompt templates as data.
Per IDLE-DRAFT-PLAN.md in writing/oreillyconsulting.

Claude-Session: https://claude.ai/code/session_01YQDoWNM7XPPii28khFWoMc
This commit is contained in:
Paul O'Reilly
2026-08-02 21:18:02 +12:00
parent f78d292f05
commit 6c4bf449aa
8 changed files with 2398 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
You are producing the **review file** for one human-edited draft in an O'Reilly
Consulting writing dossier. The draft has already been scored per-paragraph on the
5-dimension `/15` rubric (Evidence, Judgment, Voice, Rhythm, Register — see
`score-paragraphs`); your job is the **second pass**: concrete, actionable improvement
suggestions for every paragraph that scored below the threshold.
## Item
- Dossier: `$dossier`
- Topic: `$slug`
- Human-edited draft (already scored, score blocks inline): $draft_path
- Grading template — apply the same rubric and voice bar when suggesting fixes:
$review_prompt_path
- Voice reference: $style_dir/goes-target-voice.md
- Score threshold on the `/15` scale: **$review_score_threshold** — any paragraph
scoring below this needs a suggestion; paragraphs at or above it need none.
## What to produce
For every paragraph in the draft whose inline score block shows a total below
`$review_score_threshold`:
- Quote the paragraph's opening few words so a human can locate it.
- Name which of the five dimensions is weakest and why, in one sentence.
- Give a **concrete rewrite direction** — not "improve the evidence," but what
specific evidence, source, or file/line citation would raise the score, or what
specific sentence-level change (cut a hedge word, vary sentence length, cut a
vendor name, cite the file instead of the concept) would fix it.
Do not rewrite the paragraph yourself — suggest, don't replace. The human author makes
the edit.
## Required structure
```markdown
# Review: <topic title, sentence case>
## Summary
<one paragraph: how many paragraphs scored below threshold, out of how many total,
and the single most common weak dimension>
## Suggestions
### Paragraph opening: "<first few words...>"
- Score: <total>/15 (weakest dimension: <name>)
- Suggestion: <concrete, specific>
<repeat per below-threshold paragraph, in document order>
```
All headings are **sentence case**.
## Output
Write the complete Markdown file to exactly this path, and nothing else:
$output_path
The dispatcher validates this file (non-empty, starts with a top-level heading) and
promotes it to its canonical location itself.