Make Custom Plugin Skill
Use this skill when asked to create or modify analysis plugins for MultiCellPose.
Goal
Produce a valid plugin Python file under guv_app/plugins/ that implements AnalysisPlugin in guv_app/plugins/interface.py, plus optional visualization and parameter schema.
Inputs You Should Ask For
- •Plugin name (display name).
- •Exact analysis objective.
- •Required outputs (columns in result DataFrame).
- •Hyperparameters with defaults/ranges.
- •Whether visualization is required.
Required Interface Contract
Implement:
- •
nameproperty returning display string. - •
run(image, masks, classes=None, **kwargs) -> pandas.DataFrame.
Optional:
- •
get_parameter_definitions()returns dict schema. - •
visualize(...) -> np.ndarray | None.
Implementation Workflow
- •Inspect
guv_app/plugins/interface.py. - •Mirror style from
guv_app/plugins/basic_stats.pyandguv_app/plugins/perimeter_intensity.py. - •Handle mask shape robustness:
- •Prefer
(H, W)masks. - •Support singleton 3D masks
(1, H, W)when practical.
- •Prefer
- •Validate visualization masks with:
- •
from guv_app.plugins.validator import validate_visualization_mask
- •
- •Keep plugin side-effect free:
- •Return a DataFrame, do not write files.
- •Register by placement only:
- •Place file in
guv_app/plugins/; discovery is automatic.
- •Place file in
Validation Step (Mandatory)
Run:
powershell
python scripts/validate_plugins.py
If failing, fix plugin and re-run.
Output Checklist
- •New plugin file in
guv_app/plugins/. - •Parameter definitions documented in code.
- •
run()returns stable DataFrame schema. - •
visualize()returns valid mask orNone. - •Validator passes.