Skip to content

fix(tier3): include ATIF content parts in judge answer evidence - #203

Merged
rng1995 merged 8 commits into
NVIDIA:mainfrom
YMuskrat:fix/atif-structured-answer-evidence
Oct 14, 2026
Merged

rng1995 merged 8 commits into
NVIDIA:mainfrom
YMuskrat:fix/atif-structured-answer-evidence

Conversation

@YMuskrat

Copy link
Copy Markdown
Contributor

Summary

Valid ATIF answers such as [{"type":"text","text":"The answer is 4."}] currently disappear before grading, and an earlier string message can incorrectly become the final response. Reuse atif_content_text for agent text, final answers, conversation summaries and final-response evidence references in both host and verifier.

Text parts reach all judge bundles; image/audio parts retain the existing safe markers. Tests validate fixtures through Harbor's schema and compare host/verifier evidence, including references to the correct final step.

Closes #202

Focused message, evidence compiler, behavior evidence and judge-use tests: 76 passed. Full suite: 11,200 passed, 53 skipped, 25 baseline failures.

Verification

  • Familiar with CONTRIBUTING.md
  • Added focused behavioral regression tests
  • Updated CHANGELOG.md
  • Ran make lint (passed)
  • Ran make test
  • Ran make build (wheel and source distribution passed)
  • No credentials, private datasets, or proprietary benchmark content added

The full suite used the repository's locked dependencies on Python 3.12 and pytest-xdist with four workers. It has 25 failures, all reproduced against unchanged main at f32c884. The identical failing test IDs occur on all three independent fixes; none is in a changed module. These include restricted Unix sockets/local subprocesses and existing SDK/CLI/report contracts. The full suite is not claimed green.

Release Impact

  • Updated CHANGELOG.md

Signed-off-by: YMuskrat <Y.Laaouach@sussex.ac.uk>
Signed-off-by: YMuskrat <Y.Laaouach@sussex.ac.uk>
Signed-off-by: YMuskrat <Y.Laaouach@sussex.ac.uk>
Signed-off-by: YMuskrat <Y.Laaouach@sussex.ac.uk>

@rng1995 rng1995 left a comment

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.

Automated review: 1 findings (0 P1, 0 P2, 1 P3); 1 posted inline.

Comment thread src/skillevaluator/tier3/eval_core/atif_helpers.py Outdated
YMuskrat added a commit to YMuskrat/SkillEvaluator that referenced this pull request Oct 13, 2026

@chrisknvidia chrisknvidia left a comment

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.

Reviewed 3a30acc7069ee8ebe005cb4b871eb367a11f18fa against main 098f96a0d169878ab85b6801a8f4609b29d11e50. The earlier media-only final-response finding is fixed in both host and verifier, including its evidence reference. No additional substantive code finding.

Not ready to merge yet:

  • Commit d04404fa7a8e1fd929eeef5bf59ad1aba5cf4ba0 has no Signed-off-by trailer. I reproduced the exact DCO workflow check locally over the non-merge PR commits; this commit fails it. Add the author's sign-off and push the corrected history.
  • Current-head DCO, CI, and Security workflow runs are all action_required, so their checks have not run. After the sign-off fix, a maintainer must authorize the new-head workflows and the required checks must pass.

Verification: 435 focused tests passed with Harbor 0.24.0; changed-file Ruff passed; 20 copied standalone-verifier cases across ten message combinations and two evidence budgets validated all reward files and final-response references. Those subprocess cases used a localhost judge with synthetic responses. No live agent/provider/container E2E or full-suite pass is claimed.

Integration note: this branch and #201 currently conflict in CHANGELOG.md and the atif_helpers.py import. Whichever lands second will need to preserve both helper imports and rerun host/verifier coverage after resolving.

@rng1995 rng1995 left a comment

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.

The review finding is fixed in d04404f and verified. One thing still blocks merging: the DCO check fails because d04404f has no Signed-off-by line. Please sign it off (for example git rebase --signoff origin/main) and force-push.

@rng1995

rng1995 commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

@YMuskrat thanks for the quick fix. The only failing check is DCO: d04404f ("fix(tier3): retain text answer when final ATIF step is media-only") has no Signed-off-by line. Could you sign it off and force-push? For example:

git rebase --signoff origin/main && git push --force-with-lease

Everything else passes, and the PR is approved.

@rng1995

rng1995 commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

@YMuskrat I pushed a merge of main (347bda3) to clear a CHANGELOG conflict after #188 landed. Please run git pull before the sign-off rebase, so --force-with-lease does not reject the push. d04404f still needs its Signed-off-by line for DCO.

@rng1995
rng1995 enabled auto-merge October 14, 2026 03:13
YMuskrat and others added 4 commits October 13, 2026 20:15
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
Resolve the CHANGELOG.md conflict with NVIDIA#188 and NVIDIA#193 by keeping both
sides' Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
Resolve the CHANGELOG.md conflict with NVIDIA#199 by keeping both sides' Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
@rng1995
rng1995 force-pushed the fix/atif-structured-answer-evidence branch from 347bda3 to ea748c9 Compare October 14, 2026 10:59
@rng1995

rng1995 commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

@YMuskrat to unblock DCO, d04404f was re-created with a maintainer Signed-off-by line. The code and message are unchanged and you are still the author. Current main is merged in to clear a CHANGELOG conflict. Because the branch was force-pushed, please fetch the updated branch before pushing anything else to it.

@rng1995
rng1995 merged commit 99e0cad into NVIDIA:main Oct 14, 2026
17 checks passed
rng1995 added a commit to mavericksea-ai/SkillEvaluator that referenced this pull request Oct 14, 2026
Resolve the CHANGELOG.md conflict with NVIDIA#203 by keeping both sides' Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
rng1995 added a commit that referenced this pull request Oct 14, 2026
Resolve the CHANGELOG.md conflict with #203 by keeping both sides' Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
rng1995 added a commit that referenced this pull request Oct 14, 2026
Resolve the CHANGELOG.md conflict with #203 by keeping both sides' Fixed entries.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
rng1995 added a commit that referenced this pull request Oct 14, 2026
Brings in #203 (ATIF content parts in judge answer evidence; media-only
final steps skipped). Conflicts:

- CHANGELOG.md: #203's Fixed entry added to the PR's single Unreleased
  Fixed section; every other entry unchanged.
- tier3/eval_core/atif_helpers.py and tier3/harbor/templates/eval.py
  (host/verifier parity): keep the PR's index-based final response and
  budgeted tool history (_final_response_index, _history_entries,
  _fit_history). #203's behaviour now lives in those helpers.
  _final_response_index selects the last agent step for which
  atif_content_has_text is true, so a media-only step is skipped.
  get_final_response / _get_final_response and the final-response
  evidence ref excerpt return atif_content_text of that step. The history
  reads agent messages and the "Agent final answer" fallback through
  atif_content_text. The host also imports atif_content_has_text next to
  the PR's checks imports.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
rng1995 added a commit that referenced this pull request Oct 14, 2026
…story

The PR's budgeted tool history lists the final answer as "Agent final
answer" when that step also made a tool call. It now reads ATIF content
parts as #203 does. Check that a structured answer beside a tool call,
followed by a blank structured step, reaches the history the same way on
the host and in the Harbor verifier.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
rng1995 added a commit that referenced this pull request Oct 16, 2026
Brings in #196 (tier integrity) and #203 (ATIF structured answers).

Conflict: src/skillevaluator/validators/dependencies.py. Main reworked
target pyproject audits to read static PEP 621 declarations, audit exact
pins without installing the target, put conflicting pins in separate
batches, and mark malformed metadata incomplete. This branch replaced the
pip-audit result handling with a trusted-process contract that records
pip_audit success evidence for publication.

Resolution: keep main's pyproject audit as written and run each batch
through this branch's contract. A batch now also needs a successful
process and an integer exit code of 0 or 1, and its report goes through
_process_pip_audit(exit_code=...). A batch that this check marks
incomplete is not counted in audited_pins. Static metadata that parses
cleanly but has no applicable exact pins records a
pyproject_dependency_discovery success, like a target with no dependency
files, so it still counts as executed Tier 1 work. Two tests in
tests/validators/test_target_dependencies.py cover both cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
@rng1995 rng1995 mentioned this pull request Oct 20, 2026
11 tasks done
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.

[BUG]: Schema-valid ATIF structured answers disappear from judge evidence

3 participants