feat: add Organization evaluator (early access) #138
Conversation
…ures, and example notebook
…ures, and example notebook
73fa14f to
62b8c85
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new external-facing evaluator package for the Organization dimension under evals/literacy/qualitative-text-complexity/organization, intended to mirror the existing qualitative text complexity evaluator package structure.
Changes:
- Added Organization evaluator prompt assets (
system.txt,user.txt) and JSON I/O schemas. - Added evaluator configuration (
config.json) and sniff-test fixtures (fixtures.json). - Added a runnable example notebook (
example_notebook.ipynb) demonstrating evaluation + drift checking + fixture sniff testing.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| evals/literacy/qualitative-text-complexity/organization/config.json | Defines evaluator metadata, preprocessing, LLM step, schema refs, and fixture settings (currently diverges from repo config schema). |
| evals/literacy/qualitative-text-complexity/organization/system.txt | System prompt defining the Organization rubric and evaluation guardrails. |
| evals/literacy/qualitative-text-complexity/organization/user.txt | User prompt template with {text}, {grade_level}, {fk_score} placeholders. |
| evals/literacy/qualitative-text-complexity/organization/input_schema.json | Input contract for text + grade_level. |
| evals/literacy/qualitative-text-complexity/organization/output_schema.json | Output contract for complexity_score, reasoning, and details. |
| evals/literacy/qualitative-text-complexity/organization/fixtures.json | Sniff-test fixture inputs + expected labels (currently uses the wrong expected key name). |
| evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb | Example workflow: load config/prompts, compute FK score, run structured output, and execute fixtures sniff test. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
aychi1
left a comment
There was a problem hiding this comment.
Overall LGTM, there are just a few minor changes needed.
| "fixtures": { | ||
| "sniff_test_path": "fixtures.json", | ||
| "tolerance": { | ||
| "allow_adjacent_levels": true, | ||
| "notes": "If allow_adjacent_levels is true, predictions within one rubric step of the expected label count as a pass." | ||
| } | ||
| }, | ||
| "tracing": { | ||
| "expose": [ | ||
| "rendered_prompt", | ||
| "raw_output", | ||
| "raw_text", | ||
| "formatted_output", | ||
| "usage" | ||
| ], | ||
| "notes": "Runtime engines MUST expose these five trace fields per evaluation." | ||
| } | ||
| } No newline at end of file |
There was a problem hiding this comment.
Hi Seung Yeon, for this, you can cross-compare with lines 75-90 of the Intertextuality config: https://github.com/learning-commons-org/evaluators/blob/main/evals/literacy/qualitative-text-complexity/intertextuality/config.json
…ing-commons-org/evaluators into add-organization-evaluator # Conflicts: # evals/literacy/qualitative-text-complexity/organization/config.json # evals/literacy/qualitative-text-complexity/organization/example_notebook.ipynb # evals/literacy/qualitative-text-complexity/organization/fixtures.json
|
@aychi1 Thanks for the thorough review! I've addressed all the comments:
Re-ran the example notebook end to end — sniff test is now 7/7 exact. All 5 local checks pass. |
Summary
Adds the external-facing package for the Organization dimension text-complexity evaluator, mirroring the existing
intertextualitypackage structure.What's included
config.json— evaluator spec (idliteracy.gla.organization), preprocessing (FK score), single LLM step, prompt sha256 pins, and fixtures tolerancesystem.txt/user.txt— evaluation promptsinput_schema.json/output_schema.json— I/O contractsfixtures.json— sniff-test cases drawn from unanimously human-agreed items in the annotated sniff testexample_notebook.ipynb— runnable demo + drift check + sniff testVerification
config.jsonexample_notebook.ipynbruns end to endNotes
complexity_score+reasoning+details).slightly_complex; morevery/exceedinglyexamples can be added later as expert-labeled data becomes available.