Skip to content

Migrate brittle starter graders to hidden verifiers and semantic checks #123

Description

@Jordak

Summary

After hidden verifier patch support exists, audit the starter suite and migrate brittle graders away from source-token checks where the intended requirement can be tested behaviorally or semantically.

Context

Prompt-hint removal exposed false negatives where model patches appeared behaviorally acceptable, but deterministic graders rejected them for using a different source shape than the reference patch.

Examples observed in the starter-coding suite:

  • click-should-strip-ansi-tests-001: submitted parametrized tests covered the requested ANSI/color/stream behavior, but the grader required literal source tokens such as color=True, color=False, sys.stdin, sys.stdout, and sys.stderr.
  • remotion-audio-context-autoplay-muted-001: submitted code guarded the audio-context resume/wait path with an outer if (!muted), but the grader only recognized two narrower textual shapes.
  • click-help-option-refactor-001: submitted code shared help-option construction, but the grader scanned globally for a nested show_help callback string instead of checking whether the duplicate implementation was actually removed.

These examples are motivating cases, not the boundary of the work. The intended scope is a starter-suite-wide audit: any starter task whose current grader is making the benchmark brittle or overly source-shape-specific should be considered for hidden verifier migration or semantic structural checking.

Chosen Design

  • Audit all task bundles under tasks/starter/.
  • Use hidden verifier patches/tests for behavioral requirements wherever possible.
  • Keep deterministic public graders thin for behavior: run public commands, report hidden verifier outcomes, and enforce task/result hygiene.
  • Reserve deterministic structural checks for genuinely structural requirements.
  • Prefer semantic or AST-style structural inspection over raw string-token checks when structure still matters.
  • Leave artifact/change-capture policy, such as ignored/generated __pycache__ handling, out of this issue unless a task-specific grader needs to stop conflating that policy with behavior.
  • Start with at least one representative real task migration and validate it with one trial and one job before scaling the same pattern to the rest of the starter-suite audit.

Implementation Boundary

In scope:

  • Reviewing every current tasks/starter/* task card, task YAML, reference artifact, and grader strategy.
  • Adding hidden verifier patches/tests to starter tasks where behavior can be checked after the agent phase without revealing the checks in the prompt.
  • Simplifying public graders so they do not duplicate hidden behavioral checks with brittle source-token assertions.
  • Replacing raw string-token structural checks with semantic checks where the structure is truly required.
  • Regenerating affected task cards.
  • Running focused reference validation and at least one single-trial/single-job smoke run for a migrated representative task before broader validation.

Out of scope:

  • Changing the hidden verifier infrastructure itself unless a clear bug blocks task migration.
  • Adding an LLM grader.
  • Building a general-purpose structural-check framework beyond the narrow helpers needed for these starter tasks.
  • Solving ignored/generated artifact capture policy.
  • Re-curating the starter suite’s task prompts or target repositories beyond what is necessary to keep migrated graders fair.

Dependencies

Hidden verifier patch support from issue #91 has landed.

Acceptance Criteria

  • All current tasks/starter/* tasks are audited for behavioral grader brittleness and hidden-verifier suitability.
  • Every audited starter task has one of:
    • a hidden verifier migration,
    • a semantic structural-check improvement,
    • or a short recorded rationale in the PR for why its current grader should remain as-is.
  • Behavioral expectations that can be tested through hidden verifier patches no longer duplicate those checks with brittle source-token assertions.
  • Remaining structural assertions are expressed semantically enough to accept equivalent implementations where practical.
  • Task reports clearly distinguish behavioral verifier failures, structural failures, and artifact/scope hygiene failures.
  • A representative migrated task is tested with one trial and one job (--trials 1 --jobs 1) before scaling validation.
  • Task bundle validation and task-card drift checks pass.

Validation Plan

  • Run focused unit/reference checks for changed task bundles and grader helpers.
  • Run python3 -m agentlab task validate --check-task-cards tasks.
  • Run git diff --check.
  • Run one representative migrated task through python3 -m agentlab run ... --trials 1 --jobs 1.
  • Broaden validation only after the single-trial path is known to be fair.

Deferred Follow-ups

  • Any starter task that needs product/visual judgment or a nontrivial new structural-check framework should be split into a follow-up issue rather than quietly expanding this PR.
  • Artifact/change-capture policy for ignored/generated files remains separate from this task-grader migration.

Design readiness: ready to implement
Consensus provenance: Codex discussion in this thread on 2026-06-26 after issue #91 landed; the human user agreed with the first-slice direction but explicitly corrected the scope to include a potential migration audit of all starter tasks, not only the three motivating examples.
Gate skipped: not applicable

Activity

  1. added
    enhancementNew feature or request
    needs-triageMaintainer needs to evaluate this issue
    ready-for-agentFully specified and ready for an AFK agent
    and removed
    needs-triageMaintainer needs to evaluate this issue
    on Jun 24, 2026
  2. Jordak commented on Jun 26, 2026

    @Jordak
    OwnerAuthor

    Completed by merged PR #125 on origin/main. Integration evidence: merge commit de0b2f2 is reachable from origin/main after fetch. Validation seen on PR #125: branch hygiene, Python 3.9, and Python 3.x GitHub checks passed; PR validation also recorded focused unittest modules, task validation with task-card checks, git diff --check, reference verification coverage for migrated starter tasks, and one single-trial/single-job smoke run for click-should-strip-ansi-tests-001. All acceptance criteria are checked in the issue body.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified and ready for an AFK agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions