Files
rune/prompts/research-stages/outward.md
T
Nick f5ee557ee3 fix(CORRECTION-1/2): D2 producer contract + sentinel-tolerant reader; D3 telemetry wired into production path
ADAPT-1 baseline corrections (per handoff: fix D2+D3, record D1 as
FIXED_DEPTH_ROUTE_INAPPLICABLE — no OUTWARD semantics change).

CORRECTION-1 (D2): producer contract enforced
- Worker prompts updated: artifact file must contain exactly one JSON
  document; StageCompleted markers go to stdout ONLY
- _load_worker_artifact_file(): canonical reader requires pure JSON;
  LEGACY_COMPATIBILITY_ONLY permits exactly the known 'StageCompleted:
  <STAGE>' trailing sentinel (regex-anchored, no arbitrary salvage);
  corrupt JSON is never masked
- Acceptance: pure JSON OK; exact sentinel OK; arbitrary trailing text
  rejected; corrupt JSON rejected; all 6 stage prompts carry the contract

CORRECTION-2 (D3): StageAttempt telemetry wired into real production path
- research_event_relay: marks tool windows on tool running/completed/error/
  failed events (observational, never changes classification)
- StageExecutor._run_relay_with_telemetry: marks model windows around
  relay.run(); attempt threaded through _execute_stage into all 8 stage
  methods (telemetry_attempt kwarg, default None)
- PROVEN on a real production-path execution: ADVERSARIAL record shows
  wall=0.3006, model_time=0.3001 (1 window), tool_time=0.3001 (1 window) —
  overlapping by design, non-additive model respected
- telemetry failures never raise into the stage path (observational)

D1 NOT a code correction: recorded as
FIXED_DEPTH_ROUTE_INAPPLICABLE_TO_LOCAL_EVIDENCE_TASKS —
EXPECTED_ROUTING_LIMITATION / ADAPTIVE_REQUIREMENT. OUTWARD external-
evidence semantics preserved unchanged.

1163 tests pass (was 1158); ruff clean.
2026-09-09 22:18:50 +01:00

1.6 KiB

Research Stage: OUTWARD

Process capsule

  • Issue: {{ISSUE_NUMBER}}
  • Round: {{ROUND}}
  • Stage: OUTWARD (of 7)
  • Prior artifacts: {{PRIOR_ARTIFACTS}}
  • Blocking unknowns: {{BLOCKING_UNKNOWNS}}

Your task

Find and read enough reliable external evidence to answer the external research questions.

You MUST

DISCOVERY:

  • Issue real searches (webfetch of search engines, documentation sites)
  • Preserve query/tool receipts
  • Identify candidate sources with stable IDs (O1, O2, ...)
  • Classify each source (official docs, GitHub, academic, blog)
  • Select a bounded relevant set for reading

READING:

  • Actually fetch/read the selected sources
  • Extract evidence claims relevant to the subquestions
  • Record limitations and contradictions
  • Preserve source IDs and fetch/read receipts

You MUST NOT

  • Inspect unrelated Rune code
  • Design the Rune solution
  • Perform INNOVATION (that's the next stage)
  • Perform SYNTHESIS
  • Modify production code
  • Continue searching after the evidence requirement is satisfied
  • Treat search snippets as evidence (actually read the pages)

STOP CONDITION

Stop when each required external subquestion has:

  • Adequate evidence, OR
  • Explicit contradictory evidence, OR
  • A named unresolved gap

Output

Produce your stage artifact as structured text with:

  • DISCOVERY: queries issued, sources discovered with URLs
  • READING: sources actually read, evidence extracted
  • LIMITATIONS: what the sources don't cover
  • CONTRADICTIONS: where sources disagree

End with:

StageCompleted: OUTWARD  (stdout ONLY — the artifact file must contain exactly one JSON document, nothing else)