task_icons__icon_cutout__partial_match_label¶
1) Identity¶
- Domain:
icons - Scene id:
icon_cutout - Scene:
icon_cutout - Task id:
task_icons__icon_cutout__partial_match_label - Objective: select the labeled full-icon option that generated the partial icon fragment.
Program Contract¶
Program: selection.option_match(scene=icon_cutout, scope=partial_fragment_options, rule=source_fragment_shape_match, output=option_letter)
Candidate set: the visible icon instances, icon attributes, fields, grids, paths, panels, reference items, and labeled option cards inside the partial_fragment_options objective scope.
Operands: visible scene state and prompt-bound operands named by icon_cutout, partial_fragment_options, source_fragment_shape_match.
Operation: evaluate selection.option_match over the candidate set using the visible icon attributes, positions, relationships, transforms, counts, comparisons, or option-selection constraints encoded in the program expression; generation enforces a unique final answer.
Output binding: answer uses the option_letter schema; generation binds a unique final answer.
Annotation witnesses: annotation uses the bbox_map schema; the prompt/annotation contract defines the minimal visual witnesses.
Query ids: single.
Reasoning Operations¶
Families: transformation, matching
2) Scene + task contract¶
- Entities/relations: one two-panel image with a partial icon fragment on the left and six labeled full-icon options on the right.
- Supported
query_idvalue:single - Answer type:
answer_gt.type = option_letter. - Annotation type:
annotation_gt.type = bbox_mapwithsource_fragmentandselected_option. - Option policy: the Scene grid uses labels
A..F; exactly one full-icon option shares the hidden curatedicon_idthat produced the fragment. - Fragment policy: the source fragment is a rectangular, rounded, or elliptical window over the correct icon sprite. The window keeps a visible alpha ratio in the configured range and rejects near-blank crops.
- Distractor policy: distractors are different curated icon ids with distinct full-icon alpha signatures from the correct option.
- Asset policy: options use the curated icon pool from
src/trace_tasks/resources/assets/icons/all_icons.txt; names are never shown in the prompt. - Styling policy: all options share the same tint and rotation within one instance so the task depends on shape-part matching rather than color or orientation.
- Noise policy: subtle per-icon edits may be sampled before compositing and are recorded per option. The correct full option uses the same edits as the source sprite.
3) Prompt contract¶
prompt_bundle_id:icons_icon_cutout_v1scene_key:icon_cutout_relationtask_key:relation_query- Answer+annotation JSON shape:
{"annotation":{"source_fragment":[84,168,248,332],"selected_option":[492,112,662,282]},"answer":"C"} - Answer JSON shape:
{"answer":"C"} - Required slots:
- shared:
object_description,question_text_partial_icon_match_label - answer output:
json_output_contract_answer_only,answer_hint,json_example_answer_only - answer+annotation mode:
json_output_contract,annotation_hint,answer_hint,json_example - Variant counts (scene/task/mode): exactly 5 templates per required key.
- Prompt style: the question asks which labeled full icon the partial fragment comes from; it does not expose icon names.
4) Determinism + constraints¶
- Seed namespaces used: scene-level RNG via
spawn_rng(instance_seed, "scene"), plus per-icon noise namespaces. - Unique-answer policy: the correct option index is sampled first, the correct icon id is inserted exactly once, and distractors are signature-distinct.
- Reject/resample conditions: unsupported option count, empty icon pool, palette-separation failures, too few distinct distractors, or inability to sample a visible fragment.
- No-auto-relaxation guarantee: generation fails on unmet fragment/option constraints instead of accepting ambiguous options.
- Semantic-unit rule: map annotation binds the source fragment frame to the selected full-icon option cell because the task is a visual option-image match.
- Trace style metadata records the sampled palette, fragment window style, visible alpha ratio, crop coordinates, cell styling, validated text-legibility metadata, and per-icon noise edits.
5) Complexity + tests¶
- Complexity definition/components: option count, visible-fragment fraction, fragment window style, and option-cell clutter.
- Behavior/trace/prompt tests:
tests/test_icons_relation_partial_match_label_tasks.py - Implementation:
src/trace_tasks/tasks/icons/icon_cutout/partial_match_label.py - Prompt bundle/config tests:
tests/test_prompt_system.py,tests/test_scene_config.py