Curation v2 step 2: Claude Opus 5 editor, the Brief, per-provider budgets
- AnthropicBackend (Messages API, cached system block, output_config.effort,
server-side fallbacks, refusal surfaced as an error); Llms { bulk, editor }
with editor_or_bulk(); PriceTable-based UsageMeter per provider.
- [anthropic], [editorial], deepseek.max_concurrent_requests and
curation.max_article_count config; startup logs resolved providers.
- Budget day is the UTC date of started_at, preloaded from
runs.provider_costs_json; finish_run writes provider_costs_json and
config_json. Stage A batches run concurrently with per-batch budget checks.
- Editor prompt with one-line "why" per pick; no minimum lineup size;
--max-articles is a ceiling; top-up branch deleted; why stored on picks and
issue_articles.why and rendered in chapters and In this issue.
- Summaries on the editor client (3k-token input, concurrency 4, bulk then
excerpt fallback); "The Brief" replaces From the Editor; section intros gone.
- Colophon carries per-provider costs and models.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A1rCLQeKBgnBo3oTgHuTMe
This commit is contained in:
+8
-1
@@ -320,7 +320,14 @@ fn colophon_facts_are_x4_safe_distinct_paragraphs() {
|
||||
for edition in [Edition::Standard, Edition::X4] {
|
||||
let (_dir, _, zip) = build_edition_to_bytes(&issue, edition);
|
||||
let colophon = read_entry(&zip, "OEBPS/colophon.xhtml");
|
||||
assert_eq!(colophon.matches("<p class=\"fact-line\">").count(), 9);
|
||||
// Issue, generated, three model lines, entries, candidates, articles,
|
||||
// words, two per-provider cost lines, the total, generator (§15.1).
|
||||
assert_eq!(colophon.matches("<p class=\"fact-line\">").count(), 13);
|
||||
assert!(colophon.contains("<strong>Editor model:</strong> claude-opus-5"));
|
||||
assert!(colophon.contains("<strong>Bulk model:</strong> deepseek-v4-flash"));
|
||||
assert!(colophon.contains("<strong>anthropic cost:</strong> $0.0500"));
|
||||
assert!(colophon.contains("<strong>deepseek cost:</strong> $0.0231"));
|
||||
assert!(colophon.contains("<strong>Total token cost:</strong>"));
|
||||
assert!(!colophon.contains("<dl"));
|
||||
assert!(!colophon.contains("<dt"));
|
||||
assert!(!colophon.contains("<dd"));
|
||||
|
||||
Reference in New Issue
Block a user