executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
classical-image-opsRoute deterministic, CPU-safe guidance for classical GIMP-ML image operations, drawable-to-array validation, clustering, palette behavior, and result-layer handling.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill for small, non-neural image transformations in GIMP-ML: inversion, K-means segmentation, palette behavior, and the NumPy/GIMP layer boundary. It is useful both for a novice who needs a safe preflight checklist and for an expert diagnosing shape, channel, or result-layer mismatches.
gimpfu/PDB interface. GIMP and
Python 2 are unavailable for the verified host, so a live menu invocation,
PDB mutation, and pixel-region write are not verified here.
Treat those steps as static-only until tested in a compatible GIMP runtime..npy or image file, run the bundled
adapted helper; it only reads and reports, and does not write by default.
See the workflow.Invert registration only
when in-place mutation and an undo group are acceptable. The source operation
calls the PDB invert procedure on the selected layer; it is not a verified
createResultLayer operation. Preserve this exception rather than claiming
that it creates a new layer.(x, y) is a feature.
The K-means route is CPU-oriented but the source does not seed SciPy's
initialization, so do not promise reproducible labels without an explicit
deterministic wrapper.colorpalette plug-in loads
its bundled palette image, converts OpenCV BGR to RGB, and opens a separate
image named palette. It does not extract colors from the current drawable.1 <= clusters <= height * width. Small images cannot support a
large K; duplicate colors can also make a requested K ill-conditioned.[0, 255] range. The shared result helper
casts to uint8; clipping or validating before that cast avoids silent wrap.Array-producing plug-ins conventionally convert the result to uint8 bytes,
create a layer with the image width and height, write the full pixel region, add
the layer at stack position zero, and flush displays. The conventional name is
new_output, but it is not a stable identifier. Verify the actual layer after a
live run rather than relying on a name.
The shared channelData pattern reads the entire drawable pixel region and
reshapes its bytes as (layer.height, layer.width, region.bpp). It preserves an
alpha channel until the operation explicitly removes it. It does not repair
layer offsets or resample data. A result must have a byte layout compatible with
its destination layer; mismatched dimensions or channel count can fail at the
pixel-region write.
The array validation and conversion guidance is deterministic and CPU-safe. The
K-means source calls SciPy kmeans2 with its default initialization and no seed;
cluster IDs and borderline assignments may vary. Coordinate features are raw
pixel indices, so enabling position changes the feature space, not just the
rendering. The color-palette behavior is a static asset-display path, not a
verified current-layer extraction algorithm.
Do not infer live GIMP behavior from a successful NumPy/Pillow check. Do not assume CUDA, OpenCV model weights, OpenAI calls, or a running service are needed for these classical routes. For source-derived details and failure handling, follow the linked references.
--help, explicit input, channel, range, dtype, and size
checks.