docs: add .github/aw/evals.md — BinEval syntax and question decomposition guide#45833
Conversation
…guide Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a BinEval reference for workflow authors and integrates it into offline documentation discovery.
Changes:
- Documents
evalssyntax, methodology, storage, and anti-patterns. - Links and registers the new reference in documentation indexes.
- Updates the generated agentic-workflows skill file list.
Show a summary per file
| File | Description |
|---|---|
.github/aw/evals.md |
Adds the BinEval guide. |
.github/aw/syntax.md |
Links the new reference. |
.github/skills/agentic-workflows/SKILL.md |
Registers the guide for skill loading. |
pkg/cli/data/agentic_workflows_fallback_aw_files.json |
Adds the guide to offline fallback data. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 4/4 changed files
- Comments generated: 10
- Review effort level: Medium
| issues: | ||
| types: [opened] | ||
| engine: copilot | ||
| evals: |
| - `model:` — default LLM model for all questions. Use a model alias (`small`, `gpt-4o`) or a full model ID. Defaults to the engine's detection model (typically a small, cost-effective model). | ||
| - `runs-on:` — optional runner override for the evals job. Inherits the workflow default when omitted. | ||
|
|
||
| Each question object may include its own `model:` field to override the top-level default for that question only. |
|
|
||
| - `questions:` — list of question objects (required in extended form, ≥ 1 entry). | ||
| - `model:` — default LLM model for all questions. Use a model alias (`small`, `gpt-4o`) or a full model ID. Defaults to the engine's detection model (typically a small, cost-effective model). | ||
| - `runs-on:` — optional runner override for the evals job. Inherits the workflow default when omitted. |
|
|
||
| ### 2 — Identify observable properties | ||
|
|
||
| Break the goal into properties that a judge can verify from `agent_output.json` and `prompt.txt`: |
|
|
||
| ### Artifact | ||
|
|
||
| Each run uploads `evals.jsonl` as the `evals` artifact (30-day retention). Each line is a JSON object: |
|
|
||
| ## Required Permissions | ||
|
|
||
| The evals job itself reads artifacts and runs the engine — no extra permissions beyond `contents: read`. The `push_evals_state` job that persists results to a git branch needs: |
| - id: label_applied | ||
| question: Did the agent apply at least one label to the issue? | ||
| - id: correct_type | ||
| question: Is the applied label appropriate for the issue content described in the prompt? | ||
| - id: no_extra_labels | ||
| question: Did the agent avoid applying more than two labels? |
| 2. **Execute** — an LLM judge runs in a network-restricted sandbox (same engine as the agent job) and answers each question with YES or NO. | ||
| 3. **Parse** — raw engine output is parsed into per-question records and written to `evals.jsonl`. | ||
| 4. **Redact** — any credential patterns are removed from the results before upload. | ||
| 5. **Upload** — `evals.jsonl` is uploaded as the `evals` workflow artifact and optionally persisted to the `evals/<workflow-id>` git branch. |
| Read results with: | ||
|
|
||
| ```bash | ||
| gh aw audit <run-id> # includes evals section when present | ||
| gh aw logs <workflow-name> # aggregates evals.jsonl across recent runs |
🤖 PR Triage
Score breakdown: Impact 15 + Urgency 8 + Quality 12 Adds Run §29462479491
|
|
Hey This PR looks ready for review. No issues found — it's focused, well-described, and appropriate for a pure documentation change.
|
|
@copilot please run the
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
- Remove prompt.txt from Setup step: run_evals.cjs only reads agent_output.json - Remove "optionally" from Upload step: push_evals_state always runs when evals declared - Add safe-outputs prerequisite note to shorthand example; agent_output.json is only included in agent artifact when safe-outputs is declared (compiler_yaml_post_agent.go:65-69) - Fix shorthand example questions to reference agent output, not issue context - Fix runs-on default to ubuntu-latest (not workflow default) - Remove per-question model override docs (marshalEvalsQuestions drops Model field) - Fix observable properties preamble to drop prompt.txt reference - Fix assign-question-cost example to use top-level model override only - Fix artifact retention: follows repo/org settings, not fixed 30 days - Fix JSON schema to match actual run_evals.cjs records (model, runid, not run_id/workflow_id) - Fix CLI examples to show actual --artifacts evals / --evals flags - Fix permissions to mention conditional copilot-requests:write/id-token:write - Fix minimal example label questions to say "requested via safe-output action" (evals runs parallel with safe_outputs, cannot verify applied labels) Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
…ls.md Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
All review feedback has been addressed in the latest commits. Here's a summary of what was fixed in
|
|
\n@copilot please run the skill, address the unresolved review feedback (newest first: copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment); copilot-pull-request-reviewer: #45833 (comment)), and rerun checks once the branch is up to date.\n\n> Generated by \ud83c\udf73 PR Sous Chef
|
|
🎉 This pull request is included in a new release. Release: |
No structured reference existed for the
evalsfrontmatter field introduced in ADR-43641. Workflow authors had no guidance on syntax or how to write effective binary evaluation questions.New file:
.github/aw/evals.mdquestions,model,runs-on, per-question model override)evals.jsonlartifact schema +evals/<workflow-id>git branch persistenceHousekeeping
syntax.md— addedevals.mdrow to the frontmatter schema indexagentic_workflows_fallback_aw_files.json— addedevals.mdto keep offline compilation in sync.github/skills/agentic-workflows/SKILL.md— regenerated to includeevals.mdin the file list