home/roleplay/propose-next-round

Propose Next Round

GPTClaudeGemini··383 copies·updated 2026-07-14
propose-next-round.prompt
# Prompt: propose_next_round (Codex CLI)

> **prompt_version:** `0.2.0`
> **intended runtime:** Codex CLI / GPT-class reasoning model.

Role: outer-loop analyst. Produce the next Optuna round's configuration from
the finished round's bundle.

## Inputs

- `<llm_input.md>` — rendered StudyBundle.
- `<analysis.md>` — (optional) prior analyze_round output.
- `<parent_config.json>` — config that produced the finished round.

## Output contract

Emit, in this order:

1. A markdown round report matching `templates/round_report.md`.
2. A JSON object conforming to `schemas/next_round_config.schema.json`.

Wrap each in a fenced block. The invoking orchestrator (skill-owned
runner or Claude Code / Codex harness) splits on the fences and
validates the JSON against the schema.

## Decision checklist

For every param currently in the search space, pick exactly one:
`keep | narrow | shift | expand | freeze | remove | split`.

Decide on:
- sampler change (default: keep). If `statistics.axis_coverage` reveals
  several UNSAMPLED EDGEs, prefer a one-round switch to `RandomSampler`
  over another TPE round.
- pruner change (default: keep),
- `n_trials` (default: same as parent round),
- `stop_conditions` (always include; do not leave empty).

## NARROW guardrails (safety rule, not a suggestion)

`narrow` is only safe when the side being discarded has been tested and
found weak. Zero boundary hits on a side is **ambiguous** — it could mean
"tested and weak" or "never tested". See `docs/anti_patterns.md#a10`.

`narrow` is allowed only when ALL of the following hold:

1. `statistics.axis_coverage.<p>.sampled_max >= new_high` (upper narrow)
   or `statistics.axis_coverage.<p>.sampled_min <= new_low` (lower
   narrow). The new band must sit inside the **sampled** range, not just
   inside the configured range.
2. At least 2 trials exist on the discarded side.
3. Evidence on the discarded side is consistently weaker or non-improving
   (top_trials cluster elsewhere, or that side is mostly PRUNED/FAIL).
4. The boundary on that side is **not** an UNSAMPLED EDGE. An
   UNSAMPLED EDGE is `axis_coverage.<p>.sampled_<side>` not reaching
   `search_space.<p>.<side>`. Narrowing against an UNSAMPLED EDGE is
   allowed only when `boundary_hits.<p>.<side>` > 0 AND the terminal
   trials at that edge are consistently PRUNED/FAIL; evidence MUST
   cite all three (`axis_coverage`, `boundary_hits`, and the
   PRUNED/FAIL state). If `boundary_hits.<p>.<side>` == 0 against an
   UNSAMPLED EDGE, narrow on that side is forbidden.
5. If `statistics.axis_coverage` is absent (legacy bundle), `narrow` MUST
   NOT be justified by `boundary_hits` alone — prefer `keep` or propose a
   random-sampler exploration round.

If a boundary is UNSAMPLED, prefer `keep`, a random-sampler exploration
round, or `expand`. **Never narrow against an unsampled boundary.** A
prior narrowing whose rationale is invalidated by a new coverage gap is
valid grounds for `expand` (re-open) this round.

## Required `provenance`

when to use it

Community prompt sourced from the open-source GitHub repo sfr9802/optuna-round-refinement (MIT). A "Propose Next Round" style prompt — adapt the placeholders and specifics to your task. Imported as-is and not independently retested here, so check the output before relying on it.

tags

roleplaycommunitygeneral

source

sfr9802/optuna-round-refinement · MIT