task_symbolic__abacus__place_digit_readout¶
1) Identity¶
- Domain:
symbolic - Scene id:
abacus - Task id:
task_symbolic__abacus__place_digit_readout - Objective: select the labeled numeric option matching the digit shown in one queried place-value column of a three-column soroban-style abacus.
Program Contract¶
Program: selection.option_match(scene=abacus, scope=queried_place_value_column, rule=soroban_digit_sum, output=option_letter)
Candidate set: the three visible place-value columns labeled 100, 10, and 1.
Operands: the queried place-value label, the active upper/lower bead states in that column after final layout, and the six visible numeric option cards.
Operation: compute the soroban digit for the queried column, then select the unique option card whose displayed digit equals that value.
Output binding: answer is the selected option letter.
Annotation witnesses: the selected option-card bounding box.
Query ids: single.
Reasoning Operations¶
Families: formula_evaluation
2) Scene + Task Contract¶
- Supported public
query_idvalues:single answer_gt.type:option_letter- Annotation schema:
bbox annotation_gt.type:bbox- Non-semantic visual axes:
scene_variant=clean_card|wood_frame|worksheet, plus shared symbolic background/noise. - Scene contract:
- exactly three place-value columns labeled
100,10, and1, - each column has one upper bead worth
5and four lower beads worth1, - active beads are moved toward the center beam,
- the prompt identifies the queried column by its visible place-value label,
- six visible option cards are labeled
A..F, - exactly one option card displays the digit represented by that column alone.
3) Prompt Contract¶
- Bundle:
symbolic_abacus_v1 scene_key:abacustask_key:abacus_place_digit_query- Required task slot:
question_text - The prompt explicitly states the abacus rule: beads moved toward the center bar are active, an active upper bead counts as
5, and each active lower bead counts as1. - Prompt-facing answer is the single capital-letter option label.
4) Annotation + Trace Contract¶
- Annotation is the scalar bbox around the selected option card.
- Annotation marks the selected option card, not the abacus beads, rods, labels, inactive beads, or frame.
- The trace records
target_column_role,target_place_label,target_place_value,digits_by_role, the computed digit, option values by label, and the selected option label. - Answer and annotation are bound from the same finalized rendered option set.
5) Tests¶
- Behavior/trace/prompt tests:
tests/test_symbolic_abacus_tasks.py - Prompt/config tests:
tests/test_prompt_system.py,tests/test_symbolic_core_scene_config.py - Source-layout contract tests:
tests/test_public_source_layout_contracts.py