Skip to content

feat(metric-benchmark): execute local Harbor case and mutant loops - #106

Merged
mstaats-nvidia merged 8 commits into
mainfrom
feat/metric-benchmark-execution
Oct 29, 2026
Merged

mstaats-nvidia merged 8 commits into
mainfrom
feat/metric-benchmark-execution

Conversation

@mstaats-nvidia

@mstaats-nvidia mstaats-nvidia commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Run each prepared case through a local Harbor loop: baseline first, then each mutant, with one full task inventory per agent, explicit task concurrency, and no automatic retries. run_evals.py owns the CLI and calls the execution library. execute_benchmark prepares all jobs before execution, iterates cases and agents, and publishes results; run_or_reuse_job handles one agent’s execution, receipt verification, and result collection.

Produce the results contract from #105: a flat task inventory, execution observations, and an experiment manifest mapping case IDs to results indexes. Preserve native Harbor evidence and exact task bindings. Completed jobs can be verified and reused after relocation; incomplete jobs require explicit Harbor recovery. Signed inputs are required by default, while --allow-unsigned permits iteration and includes unpinned contents in the reuse identity. Changed inputs require a fresh output directory. Reuse currently binds the entire benchmark configuration, including analysis settings.

Provide a dedicated Markdown usage guide for each shipped command and link from the shared tools page. Document execution prerequisites, output layout, reuse, and interruption recovery. Public execution functions have concise docstrings and explicit case/agent variable names.

Validation on final head 792b8f9: all 21 execution tests passed, including the real Docker smoke (nine Oracle/NOP trials), CLI-to-library reuse, and relocation. Python 3.12/3.13 CI, native compatibility, static, licensing, and other applicable checks passed; optional workflows were skipped. The earlier local full suite passed 2,616 tests with 26 skips. No live model authoring was invoked.

After this PR merges, the remaining draft stack is main → #95 mutant scores → #96 coverage → #97 correlation → #99 orchestration.

@mstaats-nvidia
mstaats-nvidia added this pull request to stack #107 October 21, 2026 21:10
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from cfc0678 to 6637ba7 Compare October 23, 2026 14:33
mstaats-nvidia added a commit that referenced this pull request Oct 23, 2026
Defines an experimental benchmark for evaluating how well our coverage
metric predicts evaluation effectiveness through mutation testing.

The concise [root
README](https://github.com/NVIDIA-NeMo/eval-author/blob/docs/metric-benchmark-design/labs/metric-benchmark/README.md)
describes the project, its work-in-progress status, and the expectation
that case examples will grow, change, or be dropped as we build in plain
sight. Prep is external to this repository; runs consume prepared case
examples, fixed subset manifests, and a YAML benchmark definition.

The [stage
descriptions](https://github.com/NVIDIA-NeMo/eval-author/blob/docs/metric-benchmark-design/labs/metric-benchmark/docs/stages.md)
focus on four executable stages: run mutants × eval tasks, compute
mutant scores, compute coverage, and correlate the score pairs. The
first execution script will be a basic local Harbor loop; NeMo Helix
support is planned afterward. The [architecture and both SVG
figures](https://github.com/NVIDIA-NeMo/eval-author/blob/docs/metric-benchmark-design/labs/metric-benchmark/docs/architecture.md)
explain the inputs, component boundaries, shared results directory, and
statistical comparison.

This is the documentation-only base of the stack. Implementation PRs #94
→ #105 → #106 → #95 → #96 → #97 → #99 inherit the overview and design
unchanged. Their detailed CLI guide lives separately in `docs/tools.md`.

Validation: the five files in this PR are Markdown/SVG only. Local links
and anchors, Markdown fences, headers, SVG XML, and whitespace checks
pass; the updated figure was rendered and visually inspected. Restacking
preserves all source and test files byte-for-byte. No live evaluations
or model calls were made.
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch 2 times, most recently from 38b5871 to f963d97 Compare October 26, 2026 12:32
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch 2 times, most recently from 6960dd5 to af6604a Compare October 26, 2026 15:21
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from af6604a to cf04821 Compare October 26, 2026 19:19
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from cf04821 to 92d4a9d Compare October 27, 2026 10:24
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch 2 times, most recently from 889187a to 89a797d Compare October 27, 2026 13:08
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from 89a797d to 2de40e2 Compare October 27, 2026 13:35
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch 2 times, most recently from 993f56e to 673fbac Compare October 27, 2026 16:14
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from 673fbac to 97f402d Compare October 27, 2026 16:27
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from 97f402d to 53e617c Compare October 27, 2026 16:43
provenance. The current native reader expects absolute POSIX task paths ending
in the prepared relative task path.

## Execute the eval tasks

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: worth adding an eventual call out to Helix for this part? We can also leave as is for now

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's avoid until it's in Helix, but yea 100 we wanna add that!

@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch 2 times, most recently from ed790c0 to 57ccd98 Compare October 28, 2026 08:43
@mstaats-nvidia mstaats-nvidia self-assigned this Oct 28, 2026
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from 57ccd98 to acd2268 Compare October 28, 2026 12:56
Base automatically changed from feat/metric-benchmark-results to main October 28, 2026 13:01
Signed-off-by: mstaats <mstaats@nvidia.com>
@mstaats-nvidia
mstaats-nvidia force-pushed the feat/metric-benchmark-execution branch from acd2268 to 0e44296 Compare October 28, 2026 13:01
@mstaats-nvidia

mstaats-nvidia commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor Author

Recommended file review order for the current head (792b8f9):

  1. labs/metric-benchmark/docs/run-evals.md — Start with the execution command, inputs, output layout, reuse rules, and interruption recovery.
  2. labs/metric-benchmark/metric_benchmark/execution.py — Read execute_benchmark for the outer flow, then run_or_reuse_job for one agent; follow job_configuration, run_harbor, collect_job, and benchmark_identity as needed.
  3. labs/metric-benchmark/run_evals.py — Review main(), argument parsing, and CLI error handling; the entry point calls the execution library.
  4. tests/test_metric_benchmark_execution.py — Check the two-case matrix and resume, relocation, partial-job handling, and changed unsigned inputs.
  5. labs/metric-benchmark/docs/stages.md — Check execution-stage responsibilities.
  6. labs/metric-benchmark/docs/architecture.md — Check the execution and results-contract description.
  7. labs/metric-benchmark/docs/assets/experiment-flow.svg — Check the local Harbor and future Helix labels.
  8. labs/metric-benchmark/docs/validate-results.md — Review the validator usage and library instructions moved from the shared pages.
  9. labs/metric-benchmark/docs/validation-report.md — Check the link to the command guide; report-format documentation stays here.
  10. labs/metric-benchmark/docs/sha-sign.md — Review the signing instructions moved into their own command guide.
  11. labs/metric-benchmark/docs/tools.md — Check the command-guide links and shared configuration-loading instructions.
  12. labs/metric-benchmark/README.md — Check the entry links and description of the implemented local runner.

Resolve task sources once per case and respect the unsigned-input policy.
Explain incompatible output reuse and verify two-case execution and resume.

Signed-off-by: mstaats <mstaats@nvidia.com>
Move command instructions into dedicated pages and link from the shared guide.
Explain execution prerequisites, reuse boundaries, and interrupted-job recovery.

Signed-off-by: mstaats <mstaats@nvidia.com>
Signed-off-by: mstaats <mstaats@nvidia.com>
Signed-off-by: mstaats <mstaats@nvidia.com>
Signed-off-by: mstaats <mstaats@nvidia.com>
Signed-off-by: mstaats <mstaats@nvidia.com>
@mstaats-nvidia
mstaats-nvidia marked this pull request as ready for review October 29, 2026 10:24
@mstaats-nvidia
mstaats-nvidia requested a review from a team as a code owner October 29, 2026 10:24
@mstaats-nvidia
mstaats-nvidia merged commit 54674ec into main Oct 29, 2026
20 checks passed
@mstaats-nvidia
mstaats-nvidia deleted the feat/metric-benchmark-execution branch October 29, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants