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,67 @@
You are proposing **new candidate topics** for one dossier in the O'Reilly Consulting
writing pipeline. This runs only when no other work is currently eligible — the
dossier's existing topics are all blocked on a human step or already have enough work
in flight. Do not invent structure; follow this brief.
## Dossier
- Dossier: `$dossier`
- Dossier commissioning guide: $dossier_agents_path
- Project-root voice and citation rules: $agents_root_path
- Voice reference: $style_dir/goes-target-voice.md
Evidence you may cite must live under one of these directories (you have read access
via `--add-dir`):
$evidence_dirs
## Do not duplicate an existing topic
These titles already exist as numbered topic briefs or open proposals in this dossier.
Do **not** propose anything that duplicates or trivially rephrases one of these:
$existing_titles
## What to produce
Propose **up to $max_new** new candidate topics for this dossier, each grounded in
something you actually found under the evidence directories above — not a generic
industry-trend guess. For each candidate:
- A working title (sentence case, matching the dossier's existing topic-title style).
- A one-paragraph pitch: the decision or toil the topic would address, matching the
audience of this dossier (CTO/VP for consulting dossiers, implementing engineers for
technical dossiers — see `$dossier_agents_path` for which this is).
- 24 evidence pointers: file paths under the evidence directories, with a one-line
note on what each contains. Use the dossier's correct status-label family (see
`$agents_root_path`) on each.
You are proposing, not commissioning: **never create a numbered `NN-slug` file.** A
human promotes a proposal to a numbered brief later.
## Required structure (append this, do not replace the file)
```markdown
## <Working title, sentence case>
**Pitch:** <one paragraph>
**Evidence:**
- <path> — <one-line note, status label>
- <path> — <one-line note, status label>
```
One `##` block per proposed topic. All headings sentence case. No vendor names in
prose for consulting dossiers (`ai`, `devops-2020`) — vendor names may stay in the
evidence pointers' one-line notes only.
## Output
Write **only the new `##` blocks** (not the whole file — this content will be appended
to the dossier's existing `TOPIC-PROPOSALS.md`) to exactly this path:
$output_path
The dispatcher validates this file (non-empty, starts with a top-level `##` heading)
and appends it to the canonical proposals file itself.