Skip to main content
Read the source evaluator’s result reader before choosing a reward. Identify the score it publishes, its range, and whether partial credit contributes. A successful grader command does not establish which score the benchmark reports. Select the score in the task harness, after grading. Do not choose it in the upload script, clamp it, or turn a missing score into zero:
Parse the source grader’s documented format first if it returns strings, booleans, or nested data. Declare the actual bounds in log_reward when they differ from [0, 1]. Publish either the native total once or components that reproduce it, not both. A wrong answer can have a valid zero; an unrecovered model, environment, or grader error should end as ERROR without a published reward, even if an incidental verifier result exists. For a secondary score, weight=0 makes it visible without changing the effective reward. Use it only when the harness owns reward publication; even a zero-weight component can prevent automatic grading. An event can hold grader details without affecting reward:
Keep private grader references out of events. Retrieve the trajectory with include_reward_components=True to check names, values, bounds, and weights. Compare wrong, partial, and correct outputs against the source evaluator, including its aggregation. Then run a task diagnostic through the packaged runtime and inspect the reward, ending, and failures. Repeat for each distinct grading schema.