feat(aos-eval): a second package for the shared eval grading layer (#1104) #1112
No reviewers
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1112
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/gh56-aos-eval"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #1104.
Kai's three calls on the issue, implemented:
aos-eval/is its own project with its ownpyproject.tomland dependency set (click,pydantic,PyYAML,rich). Deliberately noinspect-aiand no model client, so nothing here can pull inference into a consumer, andaos-precommitkeeps its three-dependency hook environment untouched..forgejo/workflows/aos-eval-release.ymlmirrorsaos-precommit-release.ymlon theaos-eval-v*prefix, path-filtered toaos-eval/**. A hook release never drags it and it never drags a hook release.Profiledeclared in YAML.AGENT_COMPOSEis the built-in default reproducing today's constants exactly.Both runners stay put
agent-compose's evalkit is deliberately harness-free, two inputs through Agent Proxy, which is what makes ambient contamination structurally impossible. Echo's defects are harness defects - raw tool-call markup reaching a member, grounding against a tool result, intermittency over N runs against a live MCP roster - which a two-input call cannot reach. Both designs are correct for their own problem. What moves is only the grading half.
What moved
schema.py-Sample,Response,RunRecord,Provenance,DatasetEntry,Annotation,Verdict/Fit,PairResult,annotation_order,pair_results.RunRecordandProvenanceare Echo's contribution to the shared vocabulary, since without them Echo's committed datasets cannot round-trip.boundaries.py- the declaration format and derive-and-check tool written in sirens-echo yesterday, generalized. The pairing rule now has exactly one implementation.annotate.py- the human grading loop. Echo has a human-graded board and had no equivalent tool.export.py- the one-way display projection and its refusal gate, for the Phoenix surface in coilyco-bridge/deploy#572.taxonomy.py- axial coding, moved whole.dataset.py-filter.py's runner-free half. The Inspect log reader stays in agent-compose.matrix.pyandtask.pydo not move.matrix.pyderives its case list from agent-compose's roster Go exports andtask.pyis the Inspect task, so both are runner-specific.Verification
aos-eval boundaries derivereadscoilyco-gaming/sirens-echo's committedeval/boundaries.yamlunmodified and derives 56 slots from its 28 boundaries. That is the shared layer working against the repo it exists to serve, not against a fixture.Installability was checked against the pushed branch rather than assumed: a clean venv,
uv pip install "aos-eval @ git+<repo>@<branch>#subdirectory=aos-eval", then the installed binary deriving those 56 slots from Echo's declaration fetched over HTTPS.a520cb48- all four jobs green (aos-cli-tests,aos-eval-tests,ward-doctor,gate)just aos-eval-test- 58 passedjust test- 540 passedpre-commit run --all-files- cleanTwo defects this PR's own history caught, both mine:
test_pull_request_ci_workflow.pyfailed becauseci.ymlgained stepspromote.ymllacked, which would have let a narrower promote gate pass a red main.uvx: not found- the dev-base image hasuvbut nouvx. The lint step is now removed rather than patched, because thegatejob's pinned pre-commitruff-checkalready lintsaos-eval/. Verified by introducing a deliberate violation and watching that hook flag it.Not released
No
aos-eval-v*tag exists andaos-eval-release.ymlis not onrelease. The train cuts its first tag only after this merges andpromote.ymlfast-forwardsreleasewith a diff touchingaos-eval/**.Worth flagging
docs/sits at 40 of 40 for the large band, so the walkthrough went into.agents/skills/tooling-aos-eval/SKILL.mdrather than a newdocs/aos-eval.md, matching the existing FEATURES entries that point at skills. Say the word if you would rather displace a docs page.Merge stays director-gated.
Generated with Claude Code