Skip to content

[AI Foundry] Simplify rubric scoring and optional weights - #46717

Draft
Sydney Lister (slister1001) wants to merge 22 commits into
Azure:feature/foundry-releasefrom
slister1001:sydneylister/rubric-scoring-preview
Draft

Sydney Lister (slister1001) wants to merge 22 commits into
Azure:feature/foundry-releasefrom
slister1001:sydneylister/rubric-scoring-preview

Conversation

@slister1001

@slister1001 Sydney Lister (slister1001) commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Data Plane API Specification Update

Summary

Adds a focused ASSERT safety extension to the ordinary rubric simplification contract, whose current published changes are incorporated here.

  • Shared baseline: rubric-level Boolean/Likert mode, optional configured weights, flat mode-specific dimension evidence, and approved-dimension generation controls.
  • Return selected or inherited scoring, pass_threshold, and approved dimensions on the generation-job response.
  • Add optional generation category with quality/safety intent. Safety requires a prompt objective plus agent/trace application context, resolves Boolean judgments, and rejects conflicting rating settings.
  • Add optional Dimension.permissible, required by safety validation with no default. Safety criteria omit weights.
  • Report impermissible_behavior_violated and permissible_behavior_violated separately, with independent summary identities and denominators. No combined safety score or new execution endpoint.
  • Safety unavailable scores are null and unavailable verdicts are omitted. Ordinary rubric result properties remain flat at properties.mode, properties.decision, and properties.dimension_results.
  • Preserve historical preview wire shapes through the existing versioning decorators. New fields are versioned to v1.

The incremental safety API surface is small. The full diff also includes the shared simplification models and generated OpenAPI JSON/YAML.

API Info

  • API Spec engagement record: pending.
  • Target branch: feature/foundry-release.
  • Existing API version: v1; no API version is added.
  • Review scope: private preview.
  • Project: specification/ai-foundry/data-plane/Foundry.
  • Source files: src/evaluators/models.tsp and src/openai/evaluations/models.tsp.

No SDK package publication, service deployment, feature enablement, or criterion-level mixed scoring is introduced.

Validation and implementation alignment

Historical validation includes TypeSpec compilation, OpenAPI generation, formatting, type/version/default assertions, and comparison of older preview wire shapes excluding documentation.

October 19 source comparison confirms that the published contract includes the current shared flat-result and generation-job response additions, plus the intended safety category, permissibility, and two-metric semantics. The ASSERT service implementation is being refreshed in a separate PR stack. This is not an exact-head, full-stack serialization or persisted-E2E sign-off.

Final service-stack alignment, including nullable safety result availability versus ordinary rubric results, current-revision CI, API/codeowner approval, and engagement/release-plan linkage remain pre-merge requirements. Keep this PR in draft for API review.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.

Comment generated by summarize-checks workflow run.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
@github-actions github-actions Bot added data-plane TypeSpec Authored with TypeSpec labels Sep 25, 2026
…rics

Add the safety generation category, explicit safety criterion classification, and optional metric identity on per-criterion summaries. Preserve ordinary quality scoring and older-version schemas; emit the updated OpenAPI contracts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 91c27de1-d1d6-43c0-9534-1bbcbd0ecc1d
… contract

Use skipped transport placeholders for unscored ordinary rubrics, retain rubric-only quality details, and leave the ASSERT-integrated PR untouched.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Boolean rejects configured weights, uses a fixed all-pass threshold1 and exposes binary result dimensions only. Likert retains optional weights and arithmetic fields. Preserve API versions, existing operations and legacy behavior. TypeSpec validation, compile and formatting pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 91c27de1-d1d6-43c0-9534-1bbcbd0ecc1d
Add the shared Likert spelling entry and make the numeric and rubric scoring types available to standalone client projections.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 91c27de1-d1d6-43c0-9534-1bbcbd0ecc1d
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec31d0ea-eb02-4e58-967d-518ab8f8abc2
Preserve flat typed ordinary result properties and closed Boolean/Likert models, explicit safety permissibility, independent metric identities and nullable unavailable scores with earlier-version compatibility. Pinned TypeSpec 1.16.0 compilation, Azure SDK MCP validation, scoped formatting and 29 emitted-contract payload/golden checks pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 91c27de1-d1d6-43c0-9534-1bbcbd0ecc1d
@slister1001

Copy link
Copy Markdown
Member Author

Gerardo Lecaros (@glecaros), could you review this focused ASSERT API extension, or route it to the appropriate API reviewer? We'd like to get it checked in this week, ideally by Friday, October 23.

The incremental API surface is small: safety generation category, criterion permissibility, and two named violation metrics with independent summaries. It reuses existing operations and incorporates the rubric simplification contract, including flat dimension evidence and generation-job controls. Most changed lines are shared models and generated OpenAPI.

This is a draft API review request, not a merge-readiness claim. Please particularly review safety's nullable unavailable scores and omitted verdicts alongside the ordinary rubric contract. Final alignment of the refreshed service stack remains a pre-merge check.

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

Labels

data-plane TypeSpec Authored with TypeSpec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant