Skip to main content

eval-author

Use for "help me with my evals", "help me onboard to expand my evals", "what's the state of the eval suite here?", "what happened in this trace?", or requests to create, discover, audit, or improve evaluations. For fresh full workflows, read this skill, show its rendered orientation, and end the turn before repository work. Scoped utilities keep their scope. Explicit audits first check bounded saved context. Returning audits reuse applicable prerequisites and confirmed Ethos. Separate requests show a welcome and current audit checklist without another readiness pause. Build first evals from ETHOS.md, work on existing suites, inspect a NeMo Intake run, or derive a trace environment (experimental). Owns the evidence standard for every Eval Author flow. Creating, auditing, and improving evals require confirmed ETHOS.md and do not change the agent implementation.

Source facts

Repository
NVIDIA-NeMo/eval-author
Last source activity
October 30, 2026 at 20:48
Detected SKILL.md language
English
Stars
10
Forks
1

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
74 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
eval-author
description
Use for "help me with my evals", "help me onboard to expand my evals", "what's the state of the eval suite here?", "what happened in this trace?", or requests to create, discover, audit, or improve evaluations. For fresh full workflows, read this skill, show its rendered orientation, and end the turn before repository work. Scoped utilities keep their scope. Explicit audits first check bounded saved context. Returning audits reuse applicable prerequisites and confirmed Ethos. Separate requests show a welcome and current audit checklist without another readiness pause. Build first evals from ETHOS.md, work on existing suites, inspect a NeMo Intake run, or derive a trace environment (experimental). Owns the evidence standard for every Eval Author flow. Creating, auditing, and improving evals require confirmed ETHOS.md and do not change the agent implementation.
triggers
["help me build evals for my agent","my agent has no evals yet","audit my existing evals","I am not sure whether this repo has evals","suggest new evals based on this audit","help me with the evals in this repo","help me with evals","get me started with eval author","how do I use eval author","help me onboard to expand my evals","walk me through improving my existing evals","what is the state of the eval suite here","I inherited a repo with Harbor tasks in it","work on my evaluation suite","my evals do not use Harbor","what happened in this agent trace","create an evaluation environment from a trace","which eval author step do I need"]
not-for
["eval-author-first-eval (use to establish Ethos and build first evals without prior coverage)","eval-author-discover (use to run the discovery pass and get a runnable verdict)","eval-author-audit (use to generate, validate, measure, or aggregate audit.md coverage)","eval-author-task-create (use to propose dataset improvements; when task creation is requested, create and prove an eligible NeMo Gym or Harbor task)","eval-author-inspect-trace (use after this skill selects the trace sub-flow)","eval-author-trace-environment (experimental; use only when explicitly requested or continuing its existing workspace)","eval-author-environment (use after an authoring sub-flow hands over its cases to build and prove their task environment)","nemo-intake (use to instrument agents, ingest telemetry, or query Intake outside Eval Author)","mlflow-to-atif (use to convert MLflow traces into canonical ATIF files)","gym-to-atif (use to convert NeMo Gym Responses traces into canonical ATIF files)","nemo-experimentalist (use to run insight-driven optimization end to end, which drives the Eval Author agent itself)","nemo-evaluator (use to run an existing benchmark rather than work on a repository's own suite)"]
compatibility
The core manages shared state and delegates Ethos to ethos-orchestrate; runtime execution is delegated to sub-flows. Discovery, audit, and task creation use the local checkout. Task execution requires the selected NeMo Gym or Harbor runtime and may require Docker and provider credentials. Trace inspection requires the nemo CLI, an explicit workspace, and read access to configured Intake.
maturity
alpha
license
Apache-2.0
user-invocable
true
allowed-tools
Bash Read Write Grep Glob
metadata
{"owner":"NVIDIA-NeMo/ase_team","owner_url":"https://github.com/orgs/NVIDIA-NeMo/teams/ase_team","tags":["evaluation","authoring"]}
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. --> <!-- SPDX-License-Identifier: Apache-2.0 --> # Eval Author ## Purpose Work on repository-owned evaluation suites and understand agent traces. Route each request to the narrow sub-flow that owns it. ## Choose the entry route Use the requested outcome and prior answers before asking a question. Creating, auditing, and improving evals use the **Shared prerequisites and Ethos** flow below for NeMo Gym and Harbor, including direct invocations of their skills. For an explicit full-audit request in a known repository, first follow [Return to an audit](references/shared-prerequisites.md#return-to-an-audit). It owns saved-context reuse and welcome versus direct continuation. Fresh requests retain the opening below. The first response to a new shared flow is orientation only. Determine the goal from the user's request and conversation already available, without inspecting the repository. Render `orientation` using the pure conversation renderer, with the known journey or no journey for goal selection, and use its Markdown as the entire final visible response. The unknown-goal opening uses the shorter welcome without a checklist introduction. **End the turn immediately after that response.** When the user selects a goal, render `goal_selected` with that journey and end the turn again. Selecting a goal does not establish readiness or start checks. Before either orientation response, read only the entry skill, this core skill, the [conversation rendering contract](references/conversation-rendering.md), and the [onboarding reference](references/conversations/onboarding.md) as needed. An explicit audit may also load the linked audit-entry procedure and perform its metadata-only lookup. Apart from that exception, the only permitted command is this renderer's no-input preview mode: ```bash python3 -B <skill_dir>/scripts/conversation_renderer.py --stage orientation --journey create ``` Replace the journey with `audit` or `expand`, or omit it for an undecided request. Use `--stage goal_selected --journey <selected-journey>` after goal selection. The renderer may load its own source dependencies, but must not inspect repository files or saved state, validate Ethos, check prerequisites, write files, or delegate work. Apart from the audit-entry lookup, no other helper commands are allowed before readiness. This also applies to direct first-eval and full-audit invocations. After the actual readiness reply, follow the [shared prerequisite procedure](references/shared-prerequisites.md#check-the-agent-and-setup). It owns the check sequence, state-failure handling, transition into Ethos, and final response for fresh flows, prerequisite resumes, goal switches, and direct invocations. Continuations follow its [saved-progress rules](references/shared-prerequisites.md#save-and-resume) instead of repeating orientation. | Request | Route after shared prerequisites and Ethos | |---|---| | Build first evals | `eval-author-first-eval`; confirm reuse of any saved design on a fresh request before continuing its unfinished stage | | Audit coverage, gaps, and improvement opportunities | `eval-author-audit`, continuing with eval and trace selection | | Improve or expand evals | Preserve the expansion goal and use the expansion handoff below; an audit is optional | | Create a task from a recorded interaction | [Task-create ATIF source mode](../eval-author-task-create/SKILL.md#atif-source-mode), or [first-eval](../eval-author-first-eval/SKILL.md#atif-as-a-starting-source) for a new suite; use the [shared ATIF handoff](references/trace-input.md), without requiring an audit gap | | Explicit trace-environment request or existing workspace continuation | [Trace environment](../eval-author-trace-environment/SKILL.md); retain existing artifacts and the compatibility workflow | Acceptance of the first-evaluation flow's [audit invitation](references/conversations/first-eval.md#blockers-and-the-audit-invitation) and explicit audit requests after creation or improvement use the same [audit continuation](references/shared-prerequisites.md#return-to-an-audit). Offering an invitation or receiving a decline starts no audit work. When the goal is unclear, use `orientation` without a journey. Its shorter welcome and canonical goal choices ask only for the unresolved goal; reuse known context. Explicit inventory, planning-only, readiness, repair, trace inspection, supported NeMo Gym or MLflow trace conversion, trace-derived authoring, proposal-only, and audit generate/validate/measure/aggregate requests keep their scope. Explanation-only requests do not start a workflow. Scoped operations reuse applicable shared decisions but do not acquire unrelated onboarding requirements. Trace-source selection remains required before searching or reading traces. ### Shared prerequisites and Ethos Read [Shared prerequisites and Ethos](references/shared-prerequisites.md) for the common procedure, shared state, resumption, and exact handoff. It selects the flow-specific checks and calls the [Ethos adapter](references/ethos-confirmation.md), which owns document review, destination handling, and the canonical Ethos handoff. The [shared rendering contract](references/conversation-rendering.md) and [onboarding input/output contract](references/conversations/onboarding.md) own renderer use and canonical copy. Follow the shared procedure's [completion pause](references/shared-prerequisites.md#pause-after-ethos-confirmation) for new shared flows; returning audits use the continuation route above. ### Expansion handoff An expansion request does not imply an audit. Carry supplied suite context, requested additions, confirmed Ethos, prerequisites, and pending decisions into the selected authoring flow. Resolve an unsupported suite format during [shared prerequisites](references/shared-prerequisites.md#check-the-agent-and-setup), before Ethos. For an unsupported suite, follow the [improvement prerequisite blocker](references/pre-reqs/improve.md#checks-and-blocking-conditions): the renderer supplies a copyable conversion handoff for a separate coding-agent chat. Keep the blocker until the converted suite's actual format is checked; Eval Author does not perform the conversion. Supply the exact loaded core skill link for the canonical blocker attribution and present the rendering unchanged, without appending another pause explanation. For a starter suite created by first-eval, resume its scope stage. For supplied reviewed audit findings, use `eval-author-task-create` proposals and its existing eligibility checks. If no supported authoring flow matches the supplied suite, save the pending handoff in shared state and explain the missing capability. An explicitly selected addition or proposal-only request keeps that scope. ### Downstream progress Once prerequisites and Ethos are confirmed, follow the [completion pause](references/shared-prerequisites.md#pause-after-ethos-confirmation) for a new shared flow, or continue the already-requested returning audit. For fresh creation without a saved design or source choice, that pause asks for task sources directly; do not add a separate readiness question before it. Other flows retain their selected continuation and saved decisions. Keep the selected third checklist item current. Reuse completed shared steps. Keep scope and evidence reviews, source selection, and execution authorization. For creation and improvement, that item covers building the agreed cases or changes, running them, and reviewing results. Leave it incomplete while required execution or review remains blocked or unfinished. When the user asks a side question, answer it, then resume the pending decision or unfinished work. A side question does not confirm pending content. ## The standard **Every fact you record comes from authoritative evidence, not a guess.** The authority depends on the sub-flow: - For suite discovery, the selected provider's validators and execution checks judge readiness: NeMo Gym for native manifests and Harbor for its configs and tasks. File presence alone does not prove runnability. - For first evals, Ethos establishes intended behavior. NeMo Gym's positive/negative controls or Harbor's NOP and Oracle check basic task wiring and verifier behavior; the user's agent run establishes a baseline. Working setup does not establish evaluation quality or coverage, and a plan alone is not proof of runnability. - For task environments, the environment's Harbor smoke runs or NeMo Gym native controls establish that its dependencies, starting data, reset, and end-state export work. Build files and an environment plan are not that proof. - For audit-spec validation, the bundled schema and validator judge the finite `audit.md` coverage denominator. - For task creation, NeMo Gym's positive/negative controls and native execution, or Harbor's Oracle, check task behavior. Measured ATIF proves whether repeated real-agent runs close the selected gap; reference controls do not measure agent ability. - For trace inspection, Intake establishes what happened. Local source code can explain behavior, but it can't replace recorded trace evidence. - For experimental trace-derived environments, canonical ATIF establishes the request. Harbor's NOP and Oracle runs or NeMo Gym's native validation and repeated controls establish the generated task's behavior within the reported proof limits. No sub-flow reimplements a provider's rules. When evidence can't settle a claim, the report marks the claim unproven or uncertain. Before executing, recovering, or reporting evaluation runs, follow [Execution recovery](references/execution-recovery.md). Preserve the selected execution path and original verifiers; diagnostic results cannot complete the requested evaluation. ## Vocabulary The sub-flows share this language, and reports use it verbatim. | Term | Meaning | |---|---| | Check | One named result: `pass`, `warn`, or `fail`. Carries a message and, when it fails, a hint | | Required | A failing required check blocks the suite. Report the suite as not ready | | Advisory | A warning worth surfacing that blocks nothing | | Rung | One step of a provider's validation ladder, ordered so a lower rung's failure often clears once a higher one is fixed | | Proven | A provider judged this check. An unproven check is an observation and never evidence | | Provider | The evaluation framework that owns the rules. NeMo Gym and Harbor are supported and compatible; follow the shared provider-selection rule | | Finding | One trace claim categorized as `behavior`, `issue`, `recovery`, or `uncertainty`, with evidence IDs | | Outcome | The trace assessment: `success`, `failure`, or `unknown` | ## Sub-flows Read the selected sub-flow's own `SKILL.md` when its stage begins and follow it. This file carries the standard and boundaries; the sub-flow carries the steps. | Sub-flow | Use it to | |---|---| | `eval-author-first-eval` | Confirm prerequisites and Ethos, plan cases, and build or expand a starter suite at the agreed breadth while teaching the user how to run it | | `eval-author-discover` | Establish whether a repository's evaluations run, name the rung that fails, and get the exact command to run them | | `eval-author-audit` | Define intended coverage in `audit.md`, measure selected trace coverage, identify gaps, and recommend improvements supported by the findings | | `eval-author-task-create` | Propose concrete dataset improvements from audit findings; when task creation is requested, create one eligible NeMo Gym or Harbor task and prove it with native controls and repeated measured runs | | `eval-author-inspect-trace` | Understand one Intake trace without presuming that the trace contains a failure. Not user-invocable; this skill selects it | | `eval-author-trace-environment` | **Experimental.** Continue an existing trace-environment workspace or handle an explicit request for this compatibility workflow | | `eval-author-environment` | Build and prove the environment a Harbor or NeMo Gym task runs in: provider fit, how each dependency is provided, starting data and reset, end-state export, and isolation. Not user-invocable; first-eval and task-create hand it their agreed cases | `eval-author-audit` works one level above tasks: it generates and validates the coverage denominator, measures traces against it, and aggregates deterministic coverage reports. `eval-author-task-create` owns the proposal step: prioritize dataset improvements from those findings across tools, capabilities, and failure cases while preserving their measured or unmeasured status. Proposal-only requests stop there. Its audit-gap task-creation mode consumes only actionable tool gaps and uses the selected NeMo Gym or Harbor native scaffolder rather than guessing a task layout. Its ATIF source mode instead applies privacy and candidate admission without requiring an audit gap. For a requested full workflow, proceed from audit to proposals even when there are no eligible tool gaps; an audit-only request ends with the findings. ## Select the evaluation provider Use the same rule for first-eval, audit-derived task creation, and trace-derived task creation: honor the user's explicit NeMo Gym or Harbor choice; otherwise preserve the existing suite's provider. When neither is specified, default to Harbor. Both providers are supported, and NeMo Gym is compatible with Harbor. If the user selects a setup using both, record which provider owns each artifact and execution step and verify the runtimes that setup uses. For a mixed suite, preserve the setup of the affected cases; clarify only when the target is ambiguous. The user has the final say and can override the default or request a provider change. All flows that need a runtime use the shared [runtime locator and policy](references/runtime-prerequisites.md#runtime-prerequisite-checks). Use `--flow authoring` for creation/improvement prerequisites, first-eval, task-create, environment, and trace-derived authoring; `--flow discovery` for readiness; `--provider harbor --flow audit` for selected ATIF measurement. Creation and improvement require an available supported runtime before Ethos. Audit entry checks its Python tooling without probing an evaluation runner. This does not add runtime requirements to explicitly scoped file-only inventory, planning-only, or provider-independent audit work. Keep the selected Python/CLI pair and recorded version; missing setup or ambiguity never authorizes a provider switch. Select the output provider independently of the evidence source: a NeMo Gym trace does not require NeMo Gym output. Use the selected provider's native scaffolding, validation, and execution path. Missing setup is a reported prerequisite, not permission to silently switch providers. ## Keep task paths stable Create new tasks directly in `.eval-author/tasks/<task-slug>/`, or the selected existing suite's established task directory when that flow permits it. Keep task files at the same path as their status changes. Include only accepted tasks in the saved suite configuration. Record new tasks as **Draft** in shared state after scaffolding. Record **Accepted** only after the calling flow's existing validation, execution, and review requirements are satisfied, with its evidence and decision provenance. Use [Task status](references/shared-prerequisites.md#task-status) to record and recheck that status; directory presence and run scores do not establish acceptance. The generated suite README and report display the current status without changing task files or introducing a separate progress record. For tasks derived from traces, follow the trace-environment skill's [workspace and publication rules](../eval-author-trace-environment/SKILL.md). Before final handoff, verify that the provider configuration resolves exactly the accepted task set, that report and rerun links use those stable paths, and that validation receipts describe the accepted revision. Keep historical paths and receipts intact; do not rerun models merely to update a status. ## Gather requirements and setup from evidence During discovery and authoring source inspection, read and follow [Requirements and setup evidence](references/authoring-context.md#gather-requirements-and-setup-from-evidence). It defines the requirements to gather, their source and verification status, and where to record unknowns. Reuse documentation and prior answers; ask only about missing facts affecting the next work. Never request secret values. ## Boundaries These hold for every sub-flow. They exist because the repository belongs to the user, not to you. - **Treat recorded evidence as read-only.** Never edit, delete, rename, or hand-regenerate measurements, receipts, gate results, summaries, or attempt ledgers to change a verdict. If a result looks wrong, rerun to produce new evidence and report the discrepancy instead of reconciling it by hand. Keep evidence needed for current claims available; the user owns longer-term result retention under the [temporary-work policy](references/shared-prerequisites.md#temporary-work-and-recovery). - **Propose, never mutate customer source.** Read the user's source and report on it. Do not edit, move, or reformat any of it, including its `.gitignore`. The evaluation artifacts you add belong under `.eval-author/`, which is theirs to commit or ignore. The sole additional write scope is the requested local `ETHOS.md`: invoke [Ethos confirmation](references/ethos-confirmation.md) to create or make user-requested edits to it in the repo. Preserve existing Ethos content and custom sections; downstream audit measurement does not rewrite it. `eval-author-discover` scripts use bounded temporary files only under `.eval-author/.working/`; `eval-author-audit` writes only requested audit artifacts; `eval-author-task-create` writes only drafts, proposals, job outputs, and measurements there; `eval-author-trace-environment` writes only private, gitignored task workspaces there. For the shared ATIF flow, inspect-trace, task-create and environment also write their owned artifacts inside the selected private `.eval-author/.working/trace-inputs/` workspace. `eval-author-first-eval` writes plans, drafts, configs, and jobs there and uses the narrow Ethos write exception above. `eval-author-environment` writes environment kits, generated data, and smoke tasks under `.eval-author/.working/environments/`, copying any repository file it needs. All internal state, plans, scratch, locks, and intermediate inputs belong under `.eval-author/.working/`; final tasks, reports, run configs, and evidence retain their documented deliverable paths. Journey state is the sole workflow-state authority. Follow [Temporary work and recovery](references/shared-prerequisites.md#temporary-work-and-recovery) for construction files and unfinished-work recovery. - **A missing tool is a finding, not a task.** When the provider is not installed, say so and stop short of proving anything. Report what you found regardless, and do not install the provider automatically. For NeMo Gym, report its separate runtime requirements and repository setup instructions; for Harbor, use discovery's setup guidance to explain installation and verification. An explicit request to install is authorization for that setup; a broad eval request alone is not. - **Do not run without approval.** Discovery proves an existing suite can run and hands over the command. Task creation may run NeMo Gym verifier controls or Harbor Oracle locally, then starts real-agent jobs only when the user explicitly asked for or approved that spend. First-eval authoring may run local task sanity checks when task creation is requested; real-agent or paid-judge runs require authorization for that execution and spend. - **Trusted repositories only.** Validating a config can execute repository code, because an agent named by import path gets imported. If the repository is not trusted, say so and stop. - **Intake reads are narrow.** Only `eval-author-inspect-trace` reads Intake. It uses read-only `nemo intake` commands against the configured instance and workspace. No sub-flow discovers accounts, ingests data, uploads files, or changes a remote resource. ## Communicating with the user Omit trailing periods from user-facing list items. Do not append a footer that names or links a skill, quotes its instructions, or explains that a skill requires you to ask or wait, unless the host explicitly requires that disclosure. Keep the questions, check-ins, waits, and authorization requirements unchanged. ### Explain the eval pieces as they become relevant Before asking the user to make an authoring or setup decision, read [Explaining evaluation components](references/authoring-context.md#explain-the-eval-pieces-as-they-become-relevant). Use its definitions for the pieces relevant now, grounded in inspected material and the user's answers. Explain unfamiliar grading terms before asking about them; keep task grading distinct from coverage auditing. ### Validation and result reports For completed discovery, validation, or execution reports, lead with the verdict or outcome, then the evidence. This format does not apply to onboarding or an intent question while establishing Ethos. For proposal and task-construction evidence, use [private construction declarations](references/construction-plan.md) to connect authority, starting inputs, and native checks. Preserve the selected flow's scope and review checkpoints; proposal declarations do not authorize task scaffolding. For dataset proposals, follow `eval-author-task-create` Step 1: lead with concrete recommendations and their evidence, then supporting coverage counts and limits. An empty task-generation selection does not establish that the dataset needs no changes. In validation and execution reports, state whether findings are proven, whether the suite is ready, and the checks that failed. Never describe a suite as ready while a required check fails, and never present an observation as proof. When a sub-flow could not reach its provider, its validation report must state that readiness was not proven. An empty inventory can still be discussed. Creation and improvement follow their shared runtime prerequisite before Ethos and case planning. For a trace, use `success`, `failure`, or `unknown`. Tie key moments and findings to span IDs, evaluator result IDs, or source symbols. A healthy trace doesn't need an issue finding. ## Prerequisites Routing needs the user's desired outcome and any supplied repository or trace location, not Harbor or credentials. Authoring needs Ethos; runtime dependencies belong to the selected flow. ## Limitations The router does not execute evals or establish readiness itself. Discovery is not an audit, a coverage gap is not proof of an agent defect, and trace-derived environments remain experimental. ## Troubleshooting - Unclear desired outcome: ask one focused question; reuse known starting facts. - Missing Ethos: follow [Ethos recovery](references/ethos-confirmation.md#recovery) when the selected flow requires it; inventory and trace inspection can proceed without it. - Missing provider or inaccessible source: report the blocked claim and use the selected flow's recovery; an access failure never proves that evals are absent. ## Examples ```text Request: "Audit the evals in ./evals; the agent Ethos is ./ETHOS.md." Route: eval-author-audit, carrying both paths into its pre-flight. Deliverable: coverage findings and their evidence, not a readiness-only report. Request: "I don't know whether this repo has agent evals." Route: eval-author-discover's inventory entry, without runtime probes. Deliverable: candidate paths, documented run commands, and search limits. ```
View on GitHub