infospace-bench/workplans
tegwick ab23c5873e IB-WP-0016-T06: OpenRouter live-run guardrails
Add --chapter / --from-chapter / --to-chapter / --chunk selection flags
to generate init and generate from-source, plumb them into
init_generation_infospace via a new _filter_chunks_by_chapter helper,
and refuse to create an infospace when the filters reject every chunk
(InfospaceError "empty_chapter_selection"). The flags use the same
T03/T02 plumbing (chapter labels, roman numerals, chunk ids) so a
single-chapter selection is a one-flag command.

OpenRouter run-record metadata (model, request_id, usage tokens,
retry_count, duration_seconds) already lands in
output/workflows/runs/*.yaml; this task just adds the smoke test that
proves it stays there, plus the parallel guarantee that the same
provider metadata reaches generated artifact provenance via
provenance.provider_metadata.

tests/test_openrouter_live.py covers:
- chapter-filter, from/to-chapter range, and empty-selection failure on
  init (non-live, deterministic)
- CLI smoke through generate from-source with --chapter
- a pytest-skipped live OpenRouter one-chapter end-to-end gated by
  OPENROUTER_API_KEY + INFOSPACE_BENCH_ENABLE_LIVE_OPENROUTER, with
  INFOSPACE_BENCH_LIVE_MODEL override (default openai/gpt-4o-mini)

docs/generic-source-generator.md gains a "Live OpenRouter runs (handle
with care)" section that walks plan-before-run, single-chapter live
run, the budget/usage artifacts, and the checks a reviewer should run
before scaling to the full book.

129 tests pass, 1 skipped (the live smoke, correctly gated).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 23:04:19 +02:00
..
IB-WP-0001-state-hub-and-repo-bootstrap.md workplan cleanup 2026-05-14 12:46:32 +02:00
IB-WP-0002-infospace-lifecycle-baseline.md Initial implementation 2026-05-14 11:32:25 +02:00
IB-WP-0003-evaluation-and-inspection.md Initial implementation 2026-05-14 11:32:25 +02:00
IB-WP-0004-reference-infospace-pilot.md Initial implementation 2026-05-14 11:32:25 +02:00
IB-WP-0005-orthogonal-successor-architecture.md docs and stuff 2026-05-14 13:47:36 +02:00
IB-WP-0006-markitect-tool-adapter.md markitect-tool integration 2026-05-14 14:53:16 +02:00
IB-WP-0007-entity-relation-model-migration.md entity relationship model 2026-05-14 15:06:17 +02:00
IB-WP-0008-evaluation-history-metrics-parity.md eval history and metrics 2026-05-14 15:35:04 +02:00
IB-WP-0009-applied-workflow-generation-pipeline.md acceptance matrix and workflow generation 2026-05-14 16:01:32 +02:00
IB-WP-0010-kontextual-engine-integration-boundary.md engine and lifecycle 2026-05-14 16:26:42 +02:00
IB-WP-0011-pruned-legacy-reference-pilot.md Kontextual Engine Integration Boundary 2026-05-14 16:43:29 +02:00
IB-WP-0012-replacement-readiness-cli-parity.md command parity and migration guide 2026-05-14 17:16:39 +02:00
IB-WP-0013-wealth-vsm-generation-pipeline-parity.md infospace pipeline for wealth of nations example 2026-05-14 18:04:38 +02:00
IB-WP-0014-infospace-backend-abstraction.md chore(consistency): sync task status from DB [auto] 2026-05-17 11:52:20 +02:00
IB-WP-0015-generic-source-infospace-generator-cli.md generic source-to-infospace generator 2026-05-14 19:33:22 +02:00
IB-WP-0016-lefevre-ebook-infospace-readiness.md IB-WP-0016-T06: OpenRouter live-run guardrails 2026-05-17 23:04:19 +02:00
IB-WP-0017-agentic-memory-profile-pilot.md Agentic memory profile 2026-05-15 16:01:35 +02:00
IB-WP-0018-adaptive-llm-routing-consumer.md IB-WP-0016-T03: scale-aware planning 2026-05-17 18:18:09 +02:00
IB-WP-0019-budget-and-usage-registry.md IB-WP-0019-T07: archive integration; close IB-WP-0019 2026-05-17 21:53:28 +02:00