{ "skill_name": "halcon", "notes": "Two eval sets. `trigger` checks the description fires on the right prompts and stays quiet on near-misses (run each >=3x, target should_trigger>0.5 / should_not_trigger<0.5). `quality` checks the loaded skill leads to correct machine-specific behavior; run with_skill vs without_skill and compare against assertions.", "trigger": [ { "prompt": "Run this HALCON procedure over a folder of images and give me the results", "should_trigger": true }, { "prompt": "I have a .hdev script, can you execute it and read back the Total variable?", "should_trigger": true }, { "prompt": "Measure the diameters of these circular marks in the image to sub-pixel accuracy", "should_trigger": true }, { "prompt": "Read the DataMatrix code stamped on this part", "should_trigger": true }, { "prompt": "Find where this template logo appears in each frame and report its angle", "should_trigger": true }, { "prompt": "Calibrate this camera so I can measure parts in millimeters", "should_trigger": true }, { "prompt": "Fit circles to the edges of these holes and compare two fitting methods", "should_trigger": true }, { "prompt": "How do I set up HDevEngine from Python on this machine?", "should_trigger": true }, { "prompt": "Align the point cloud of this bracket to its CAD model to get the 3D pose", "should_trigger": true }, { "prompt": "The image processing keeps saying license error, what's wrong?", "should_trigger": true }, { "prompt": "Let me draw a region on this image once and reuse it to restrict processing for a whole batch", "should_trigger": true }, { "prompt": "I'm on my Mac and there's no HALCON installed — can you measure the overlay deviation on this bullseye alignment image?", "should_trigger": true }, { "prompt": "Find the four ring-mark centers in every image in this folder and save them to a CSV", "should_trigger": true }, { "prompt": "Batch-process a few thousand die photos to detect circle marks and give me one CSV, over the remote service", "should_trigger": true }, { "prompt": "Parse this CSV of measurement results and plot a histogram", "should_trigger": false }, { "prompt": "Write a Python script to rename these image files by timestamp", "should_trigger": false }, { "prompt": "Explain how a Canny edge detector works in general terms", "should_trigger": false }, { "prompt": "Set up an OpenCV pipeline to detect circles with HoughCircles", "should_trigger": false }, { "prompt": "Convert this PNG to grayscale JPEG", "should_trigger": false }, { "prompt": "Help me train a PyTorch model for defect classification", "should_trigger": false } ], "quality": [ { "id": "run-a-procedure", "prompt": "Run the find_circles procedure in the project on the image C:/data/a.png with roi.hobj and give me the FitRow output.", "expected_behavior": [ "Uses HDevEngine (run_procedure.py or equivalent), not an invented API", "Invokes python through uv.exe by full path, never bare `python`", "Passes absolute paths for the image and ROI", "Reads FitRow back as a native value from get_output_control_param_by_name" ], "assertions": [ "The command uses /mnt/c/Users/NAURA/.local/bin/uv.exe (or an alias to it), not `python`/`python3` directly", "Uses scripts/run_procedure.py or the documented HDevEngine set/execute/get sequence", "Does not attempt a Linux-side HALCON install or `pip install halcon` in WSL" ] }, { "id": "unattended-draw", "prompt": "I need to threshold inside a hand-drawn region for 500 images unattended. How should I structure this?", "expected_behavior": [ "Recognizes draw_* cannot run unattended", "Proposes teach ROI once (teach_roi.py -> write_region -> .hobj) then read_region + reduce_domain headless", "Warns to draw the ROI tightly" ], "assertions": [ "Mentions the teach-once / reuse-headless ROI seam", "References write_region/read_region (.hobj) rather than drawing per image" ] }, { "id": "find-operator-docs", "prompt": "Which HALCON manual explains 2D metrology for fitting circles, and where?", "expected_behavior": [ "Points to solution_guide_iii_b_2d_measuring.pdf with page ranges from doc-map.md", "Suggests reading only the relevant pages via the Read tool, not the whole PDF" ], "assertions": [ "Names solution_guide_iii_b_2d_measuring.pdf", "Gives specific pages/chapters rather than 'read the guide'" ] }, { "id": "teach-roi-interactive", "prompt": "I need to draw an ROI around a small Mark on a 24-megapixel image — I want to zoom and pan to place it precisely, then save it for reuse.", "expected_behavior": [ "Uses scripts/teach_roi.py (rectangle) or the halcon_teach_roi MCP tool, which give pan (right-drag) / zoom (wheel) / box-select (left-drag)", "Persists the ROI as a .hobj via write_region for headless reuse", "Does not propose a plain draw_rectangle1-only window that cannot zoom/pan", "Handles full-resolution coordinates (aware clip_region must be false, or that the picker keeps full-res coords while downsampling only the display)" ], "assertions": [ "Proposes the interactive pan/zoom/box-select picker (teach_roi.py rectangle mode or halcon_teach_roi), not bare draw_rectangle1", "Saves to a .hobj (write_region) for reuse", "Mentions handling large/full-resolution coordinates (clip_region=false, or display-only downsampling)" ] }, { "id": "chinese-path", "prompt": "HALCON says 'File not found' / the Chinese file path shows garbled characters when I run it. Why?", "expected_behavior": [ "Identifies the GBK/cmd.exe (or console) encoding issue", "Advises calling the .exe/uv.exe directly from WSL (UTF-16 argv) and iconv for GBK console output" ], "assertions": [ "Attributes garbling to GBK / cmd.exe / console code page, not to HALCON itself", "Recommends not routing Unicode paths through cmd.exe" ] }, { "id": "remote-no-local-halcon", "prompt": "I'm on a MacBook with no HALCON installed. Measure the Top/Bottom overlay deviation on this bullseye image ~/die.bmp and give me dX/dY in microns.", "expected_behavior": [ "Uses the remote halcon-remote MCP (no local HALCON); reads references/remote-mcp.md", "Gets the image to the server via image_b64 (single small image) or halcon_create_upload -> PUT -> key, not a client-side file path", "Calls halcon_measure_overlay and reports overlay_dX_um/overlay_dY_um (um, Bottom - Top)" ], "assertions": [ "Uses mcp__halcon-remote__halcon_measure_overlay, not a local Windows HALCON invocation", "Supplies the image via image_b64 or halcon_create_upload presigned PUT (not `file:` which is server-side, nor a local path the server cannot see)", "Does not attempt a local HALCON install" ] }, { "id": "remote-batch-zip", "prompt": "I have ~2000 die images in a folder. Find the 4 ring-mark centers in each and give me one CSV, using the remote HALCON service.", "expected_behavior": [ "Zips the folder into one file (store mode) and uploads once via halcon_create_upload -> single PUT", "Calls halcon_find_circles_zip(zip_key) and returns/downloads the csv_url", "Notes synchronous execution (~minutes for thousands) and a long client timeout" ], "assertions": [ "Uses the zip -> halcon_create_upload -> halcon_find_circles_zip pattern (one upload), not 2000 per-file uploads", "Retrieves the result CSV via the returned csv_url", "Does not call halcon_create_upload once per image" ] } ] }