100%

directive-objective-threading

Goal

Emit the problem-intel directive from the runtime and thread the microscope dossier path into the /tpr-review candidate-selection objective the reviewers read — distinct from the existing section dossier.

Implementation Sketch

  • _dispatch_required derives the target, computes the ephemeral out_md, emits payload.problem_intel.
  • prompts.py adds compose_problem_intel_directive framed as local code-graph recon on the exact wall, distinct from the section dossier.
  • Per-PROBLEM only; the 6b4f84d0 anti-reintroduction pin holds (no in-runtime candidate enumeration).

Spec References

  • scripts/ledger_evolution_runtime/pipeline.py (_dispatch_required 207-261), prompts.py (compose_candidate_pipeline_dispatch_prompt, compose_open_hard_intel_directive).
  • scripts/ledger_evolution_runtime/next_action.schema.json.
  • Commit 6b4f84d0 (anti-reintroduction pin); learning-ledger.md §11.6 (one-writer).

Work Items

  • pipeline.py:_dispatch_required calls problem_scope.derive_problem_scope; on a derived target compute the ephemeral out_md (_inflight/ledger-evolution-problem-intel.md) and emit payload.problem_intel = {target, out_md, research_mode: ‘online’}; emit nothing when None.
  • prompts.compose_problem_intel_directive(out_md): instruct reviewers to read the microscope dossier IN FULL as local code-graph recon on the EXACT wall symbols, DISTINCT from the section dossier; inject into compose_candidate_pipeline_dispatch_prompt beside the existing intel_block.
  • Hold the 6b4f84d0 anti-reintroduction pin: per-PROBLEM dossier only, NO candidate enumeration/consensus in the runtime; keep state.py serving_surface_gate clean (problem_scope + threading import no route_walk / compose_dead_ends_ledger / ledger_decay).
  • Extend next_action.schema.json with problem_intel; pytest tests/test_dispatch_problem_intel.py: objective references out_md iff a scope is derivable, absent when None.

Fresh intel (regenerated)

{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “evolution-candidate-intel-package/s-d63fc6f9” }, “generated_at”: “2026-06-29T19:54:30.423474+00:00”, “graph_state”: { “head_sha”: “72ec9529”, “last_code_import_at”: “2026-06-29T19:53:02.066Z”, “embedding_stale”: true, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:evolution-candidate-intel-package/s-d63fc6f9] agent-authored dossier”, “degraded”: false, “dossier”: { “objective_symbols”: [], “tiers”: {}, “agent_authored”: true, “constrained_symbols”: [ “assemble_corpus”, “corpus_digest”, “compose_dead_ends_ledger”, “ledger_decay”, “route_walk” ], “difficulty”: { “class”: “routine”, “research_online”: false, “research_mode”: “auto”, “signals”: [], “plan_dir”: “/home/eric/projects/ori_lang/plans/evolution-candidate-intel-package” } } }

(full dossier: directive-objective-threading—s-d63fc6f9.intel.json)