You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Design/alignment; implementation branch pending the RFC 008 base decision.
PostTrain/BenchFlow is ready to test an early branch. The draft RFC 008 stack (#942–#958) now proposes the shared adapter/planner/executor/report foundation, so this issue should implement the missing one-shot task-package lane rather than a second validation core. Reviews are underway on the author-facing contracts in #947 and #952.
Problem
PostTrain Arena uses containerized task packages rather than served environments. Its starting-kit package contains a task.md, an environment/, a verifier, and an oracle/solve.sh. The agent runs to completion, then the verifier reads final artifacts and produces a reward.
OpenEnv environments use a different lifecycle: a long-lived server is driven through reset / step / state, while agents interact through MCP and reward is returned by the environment.
flowchart LR
subgraph Served["OpenEnv served lifecycle"]
O["Trainer / orchestrator"] -->|"reset · step · state"| E["Long-lived environment"]
A["Agent"] -->|"MCP tools"| E
E -->|"Observation + reward"| O
end
subgraph OneShot["PostTrain one-shot lifecycle"]
P["Task package"] --> R["Agent runs to completion"]
R --> V["Verifier reads artifacts"]
V --> W["Reward / evidence"]
end
Served -. "shared planning/reporting, different runner" .-> OneShot
Loading
Neither lifecycle should pretend to be the other. The missing capability is an authoring and validation path for the one-shot package.
Current direction
RFC 008 proposes the shared, spec-neutral pieces:
flowchart LR
S["Trusted spec adapter"] --> N["Normalized subject + requirements"]
N --> P["Policy + planner"]
P --> X["Execution-model-specific runner"]
X --> R["Shared validation report"]
X -->|"served"| SV["OpenEnv runtime checks"]
X -->|"one_shot"| OS["This issue"]
Loading
If that architecture is accepted, this issue owns the PostTrain one-shot adapter, policy, runner, CLI surface, and conformance fixtures. It does not own the generic validation planner/executor/report core.
Proposed v1 scope
Pin an explicit PostTrain starting-kit profile/version rather than claiming broad BenchFlow compatibility.
Add a trusted task.md adapter and structural checks for frontmatter, prompt, environment, verifier, oracle, and required paths.
Emit RFC 008 shared reports with stable diagnostics and certified: false for local author validation.
Add a separate task-oriented CLI (openenv validate-task or openenv task validate; spelling still to be decided).
Add representative valid, structurally invalid, and execution-invalid fixtures supplied with PostTrain/BenchFlow.
Add a one-shot Docker runner only after the lifecycle, reward-boundary, and isolation policy is agreed.
Validate oracle and empty-trial behavior with policy-defined thresholds/margins, not brittle exact reward == 1.0 assertions.
Suggested implementation sequence:
flowchart TD
D["Decide base + one-shot policy ownership"] --> A["PR 1: task.md adapter + structural checks"]
A --> F["PR 2: shared diagnostics + conformance fixtures"]
F --> R["PR 3: isolated one-shot runner"]
R --> C["PR 4: task CLI + docs"]
Loading
Explicit non-goals for v1
Reimplementing or wrapping served OpenEnv validation; openenv validate remains the served-environment command.
Public plugin discovery in the first slice.
Official certification of external task packages.
Claiming full generic BenchFlow support from the smaller PostTrain starting-kit checker.
Running hosted-verifier, GPU/TPU-only, multi-agent, or simulated-user packages locally without a defined runner and policy.
Status
Design/alignment; implementation branch pending the RFC 008 base decision.
PostTrain/BenchFlow is ready to test an early branch. The draft RFC 008 stack (#942–#958) now proposes the shared adapter/planner/executor/report foundation, so this issue should implement the missing one-shot task-package lane rather than a second validation core. Reviews are underway on the author-facing contracts in #947 and #952.
Problem
PostTrain Arena uses containerized task packages rather than served environments. Its starting-kit package contains a
task.md, anenvironment/, a verifier, and anoracle/solve.sh. The agent runs to completion, then the verifier reads final artifacts and produces a reward.OpenEnv environments use a different lifecycle: a long-lived server is driven through
reset/step/state, while agents interact through MCP and reward is returned by the environment.flowchart LR subgraph Served["OpenEnv served lifecycle"] O["Trainer / orchestrator"] -->|"reset · step · state"| E["Long-lived environment"] A["Agent"] -->|"MCP tools"| E E -->|"Observation + reward"| O end subgraph OneShot["PostTrain one-shot lifecycle"] P["Task package"] --> R["Agent runs to completion"] R --> V["Verifier reads artifacts"] V --> W["Reward / evidence"] end Served -. "shared planning/reporting, different runner" .-> OneShotNeither lifecycle should pretend to be the other. The missing capability is an authoring and validation path for the one-shot package.
Current direction
RFC 008 proposes the shared, spec-neutral pieces:
flowchart LR S["Trusted spec adapter"] --> N["Normalized subject + requirements"] N --> P["Policy + planner"] P --> X["Execution-model-specific runner"] X --> R["Shared validation report"] X -->|"served"| SV["OpenEnv runtime checks"] X -->|"one_shot"| OS["This issue"]If that architecture is accepted, this issue owns the PostTrain one-shot adapter, policy, runner, CLI surface, and conformance fixtures. It does not own the generic validation planner/executor/report core.
Proposed v1 scope
task.mdadapter and structural checks for frontmatter, prompt, environment, verifier, oracle, and required paths.certified: falsefor local author validation.openenv validate-taskoropenenv task validate; spelling still to be decided).reward == 1.0assertions.Suggested implementation sequence:
flowchart TD D["Decide base + one-shot policy ownership"] --> A["PR 1: task.md adapter + structural checks"] A --> F["PR 2: shared diagnostics + conformance fixtures"] F --> R["PR 3: isolated one-shot runner"] R --> C["PR 4: task CLI + docs"]Explicit non-goals for v1
openenv validateremains the served-environment command.Decisions still needed
validate-taskversustask validate.Acceptance criteria for the first branch
Related work
envs/tbench2_env: nearby one-shot/pytest task shape, not a drop-in validator.