Files

124 lines
7.8 KiB
JSON
Raw Permalink Normal View History

{
"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"
]
}
]
}