feat(evals): add Strength Acknowledgment onto the ela-writing taxonomy - #185
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the “Acknowledges Strength” feedback-quality evaluator into the evals/feedback/ela-writing/strength-acknowledgement/ taxonomy as Strength Acknowledgement, aligning it with the standardized, config-driven evaluator contract (schemas, fixtures, notebook) used across the evaluator set.
Changes:
- Adds the evaluator contract artifacts at the new taxonomy path (
config.json,input_schema.json,output_schema.json,fixtures.json, prompts, and notebook). - Renames the evaluator identity and step id, and standardizes the binary output field name to
quality_score. - Updates prompt content spelling to “acknowledgement” and refreshes the pinned prompt hash in
config.json.
Reviewed changes
Copilot reviewed 5 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| evals/feedback/ela-writing/strength-acknowledgement/config.json | New evaluator identity (id/stable_id/id_history/name) and step id; pins prompt hashes. |
| evals/feedback/ela-writing/strength-acknowledgement/input_schema.json | Defines structured inputs (student_text, feedback_text) for the evaluator contract. |
| evals/feedback/ela-writing/strength-acknowledgement/output_schema.json | Renames the binary output field to quality_score and updates schema metadata. |
| evals/feedback/ela-writing/strength-acknowledgement/fixtures.json | Updates expected outputs to use quality_score. |
| evals/feedback/ela-writing/strength-acknowledgement/system.txt | Updates prompt wording/spelling; retains evaluation rubric and examples. |
| evals/feedback/ela-writing/strength-acknowledgement/user.txt | Adds the user prompt template using {student_text} and {feedback_text} placeholders. |
| evals/feedback/ela-writing/strength-acknowledgement/example_notebook.ipynb | Updates notebook naming, paths, function name, and expected field reads to quality_score. |
Suppressed comments (2)
evals/feedback/ela-writing/strength-acknowledgement/example_notebook.ipynb:118
- Typo in the notebook docstring: “wheter” should be “whether”. Note this same typo also appears in other evaluator notebooks, so fixing only here would leave inconsistent docs.
evals/feedback/ela-writing/strength-acknowledgement/system.txt:78 - The prompt text still instructs the model to output an overall
answer(and the calibration examples label the correct judgment asanswer = ...), but this evaluator’s structured output schema usesquality_score. Withparser.kind = structured_output, this terminology mismatch can confuse the model and/or reduce adherence to the schema. Update the prompt language to consistently refer toquality_score(and update the example judgments accordingly).
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
adnanrhussain
added a commit
that referenced
this pull request
Aug 21, 2026
Adds the 7 evaluators migrated to evals/feedback/ela-writing/ (PRs #179-#185). The destination root was hardcoded to the student-facing-text path, so it's now per-family via a FAMILIES map, with each evaluator naming its family. --list groups by family and --all takes --family to scope to one. Running it over the new family confirms the migration: 6 of 7 are IDENTICAL, and the only CHANGED one is strength-acknowledgement, whose sole diff is the deliberate acknowledgment -> acknowledgement spelling.
aychi1
self-requested a review
August 26, 2026 18:47
aychi1
approved these changes
Aug 26, 2026
aychi1
left a comment
Contributor
There was a problem hiding this comment.
LGTM, conditional on P0 max length.
adnanrhussain
force-pushed
the
feedback-strength-acknowledgement
branch
from
August 27, 2026 07:04
a03e2a5 to
1d3c066
Compare
Migrates the acknowledges-strength feedback evaluator to evals/feedback/ela-writing/strength-acknowledgement/, renamed to Strength Acknowledgement. Adds stable_id/id_history, and renames the output score field to quality_score so the whole feedback family shares one name for the measured dimension. Also standardises the spelling to "acknowledgement" throughout, including system.txt. Editing prompt text is normally out of scope for a rename, but the public name uses this spelling and leaving the prompt on the other variant would make the evaluator internally inconsistent. The pinned sha256 is recomputed accordingly.
scripts/checks/eval_config.py hashes raw bytes deliberately -- text-mode reads translate newlines, so a CRLF prompt file (or a non-UTF-8 default locale) would make the notebook's computed hash disagree with the sha256 the config pins, failing the drift assertion on a file CI considers fine. The notebook now matches.
…t and re-pin its hash
adnanrhussain
force-pushed
the
feedback-strength-acknowledgement
branch
from
August 28, 2026 01:07
1d3c066 to
0f3e2de
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrates Acknowledges Strength onto the
evals/feedback/ela-writing/taxonomy as Strength Acknowledgement, atevals/feedback/ela-writing/strength-acknowledgement/. Same pattern as the student-facing-text family (#159, #161, #163, #173–#177). The evaluator already had a complete contract; this moves it, renames it, and closes the gaps that family standardised on.Evaluator
evaluator.id:feedback.ela_writing.strength_acknowledgementstable_id:99370b62-6791-4535-a77e-dda6806c635c,id_history:["feedback.productive_coaching_writing_feedback.is_acknowledges_strength"]evaluator.name:Strength Acknowledgement Evaluator— drops theFeedback-Qualitysuffix so it matches the<X> Evaluatorform used across student-facing-textevaluate_is_acknowledges_strength→evaluate_strength_acknowledgementgpt-5.4-2026-03-05, temperature 1, unchangedquality_scoreThe output score field was named after the evaluator (
acknowledges_strength_score). Every evaluator in this family had a differently-named field for the same binary judgement, so a consumer had to know which evaluator ran before it could read the result.Student-facing-text names this after the measured dimension —
complexity_score, identical across all 8 of its evaluators. This adopts the same convention:quality_score, shared across all 7 feedback evaluators. Values are unchanged (integer,0/1).Renamed in
output_schema.json(property,required[], description),fixtures.json(expected), and the notebook. Nothing consumes these configs — no TypeScript or Python SDK reads them — so there is no downstream breakage.Also fixed
The notebook carried two copy-paste references to
evals/prompts/purpose, a leftover from the Purpose evaluator it was templated from. Both now point at this directory.Not applicable
The
grade_levelstring standardisation doesn't apply — this evaluator takesstudent_textandfeedback_text, no grade input.supported_grades: ["8", "9"]is metadata only.Verification
scripts/check.pyall pass.Spelling: "acknowledgement"
The public name uses
acknowledgement; the repo usedacknowledgmentin 14 places. Both are valid — the former is the British variant, the latter standard US — so this is a variant choice, not a typo fix. Standardised onacknowledgementthroughout, includingsystem.txt.Editing prompt text is deliberately out of scope for a rename elsewhere in this migration series, so calling it out: it was authorised here specifically, because leaving the prompt on the other spelling would make the evaluator internally inconsistent with its own name and folder. The pinned
sha256forsystem.txtis recomputed to match (d66c26d4…→3a96d931…), andscripts/check.pyverifies it.