task_symbolic__music_staff__roman_numeral_label¶
1) Identity¶
- Domain:
symbolic - Scene id:
music_staff - Task id:
task_symbolic__music_staff__roman_numeral_label - Objective contract:
roman_numeral_label
Program Contract¶
Program: music_staff.roman_numeral_label(scene=music_staff, scope=key_signature_plus_numbered_chord_excerpt_plus_visible_text_options, output=option_letter)
Candidate set: the visible text option cards for roman-numeral chord labels.
Operands: the visible key signature, target numbered chord tones, and roman-numeral label represented by each option.
Operation: infer the key, analyze the target chord in that key, and select the unique matching roman-numeral option.
Output binding: answer is the selected option letter.
Annotation witnesses: a bbox_map with key_signature and target_chord roles.
Query ids: single.
Reasoning Operations¶
Families: formula_evaluation, matching
2) Scene + task contract¶
- Entities/relations: a rendered music-staff notation panel with a key signature, numbered chords, and visible text option cards.
- Supported
query_idvalues:single answer_gt.type:string- Default
annotation_gt.type:bbox_map - Annotation schema:
bbox_mapwith keyskey_signatureandtarget_chord - Annotation witness policy: annotation binds the key-signature bbox to
key_signatureand the target numbered chord bbox totarget_chord; visible text options, non-target chords, number-marker bboxes, staff lines, and decorative background are not prompt-facing annotation. - The correct semantic roman-numeral label is rendered as one visible option;
answer_gt.valueis the option letter.
| Query id | User-facing operation |
|---|---|
single |
The prompt asks the one stable objective contract for this task. |
3) Prompt contract¶
prompt_bundle_id:symbolic_music_staff_v1scene_key:music_stafftask_key:music_roman_numeral_label- Query keys: internal branch key from the generated trace; public single-operation tasks expose
query_id=singleafter registry normalization. - Output modes:
answer_only,answer_and_annotation
4) Determinism + constraints¶
- Deterministic generation and rendering from
instance_seed. - Answer and annotation are bound from the same finalized notation scene and projected bboxes.
- Count tasks construct the requested answer count before rendering; label tasks construct a unique target label by scene state.
- No semantic constraints are auto-relaxed after sampling.
5) Source files¶
- Task source:
src/trace_tasks/tasks/symbolic/music_staff/roman_numeral_label.py - Scene shared package:
src/trace_tasks/tasks/symbolic/music_staff/shared/ - Config:
src/trace_tasks/resources/configs/domains/symbolic/music_staff.yaml - Prompt asset:
src/trace_tasks/resources/prompts/symbolic/music_staff/symbolic_music_staff_v1.json - Focused tests:
tests/test_symbolic_notation_tasks.py