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
setup-and-hostChoose and safely prepare the legacy GIMP-ML plug-in path or the newer local Python 3 service path, including host checks, discovery, permissions, weights layout, lifecycle, and refresh safety.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when a user needs to install, discover, diagnose, or safely refresh GIMP-ML on a host. This is an operating guide, not a promise that the historical plug-ins run on a current machine.
gimpfu, and a gimpenv virtualenv. Its imports and sys.path entries are Python-2.7-specific.weights/ tree below the installed plug-in directory. Model files are not supplied or downloaded by this skill./status plus model-affecting POST routes. The service port is deployment-selected and must come from the installed application or its operator./status with scripts/check_service_status.py before any model operation.blocked: deployment-specific service startup. Do not invent a command that runs or imports files from an original source checkout.scripts/check_layout.py. Missing weights are a blocked capability, not a reason to run a downloader.scripts/check_plugin_registrations.py against an explicitly supplied installed/candidate plug-in tree, then verify the host's configured plug-in directory and permissions. A static register() finding is not proof that GIMP loaded it.weights/ and environment data. Never execute an unfamiliar bundled updater or downloader automatically.Record the user-provided installed plug-in root, intended mode (legacy or service), and desired boundary (menu/PDB or HTTP). For service mode, record the operator-provided active loopback port; do not infer it from a checkout or a historical default.
For a legacy candidate, run the two bundled static checks with explicit installed/candidate paths. They do not import plug-ins, contact a network, download weights, start GIMP, or mutate files.
For legacy mode, perform presence and permission checks only; configure the installed plug-in folder in GIMP 2.10 Preferences → Folders → Plug-ins, then restart GIMP manually. Do not claim this was tested on the current host.
For service mode, ask the operator to use the installed application's supported launcher. Once the operator confirms that the service is running and supplies its active loopback port, run:
python3 scripts/check_service_status.py --port <active-port>
This helper performs one loopback-only GET /status; it does not start, stop, import, or configure the service. If the launcher or active port is unavailable, return a deployment-specific startup blocker.
Treat a missing menu, missing PDB procedure, unavailable gimpfu, missing weights, refused loopback connection, or failed model prerequisite as a diagnostic result. Use troubleshooting rather than silently switching modes.
Inputs are an explicitly supplied installed/candidate plug-in root, optional weights root, target GIMP generation, desired boundary, and—for service liveness only—an operator-confirmed active loopback port. Never infer a deployment path or port from the current checkout.
The output is a mode verdict and a next safe check:
/status on the supplied loopback port;gimpfu, weights, a supported service launcher, an active port, provider access, or device memory;Keep those labels separate. Service liveness cannot upgrade a legacy menu result, and a present checkpoint cannot upgrade a provider or GPU result.
This skill has no portable service-start command. The only supported lifecycle path is the installed GIMP-ML application's launcher or an operator-managed deployment. Do not open, run, import, or adapt an original service module or configuration file to manufacture a startup command.
After supported startup, obtain the active port from the installed application/operator and accept only a loopback endpoint. The bundled status helper rejects non-loopback hosts by design. A successful /status response establishes only HTTP process liveness; it does not establish weights, provider credentials, CUDA capacity, or inference correctness. Stop the service only through the same installed launcher/operator procedure that started it.
Stop before changing anything when the requested mode, target GIMP generation, asset source, or service ownership is unclear. Ask the operator to choose the boundary rather than silently installing both stacks.
Stop at static-only when the host cannot provide GIMP 2.10/Python-Fu or a required checkpoint. Stop at blocked: deployment-specific service startup when no installed launcher/operator procedure or active loopback port is available. Stop before any model/provider operation that lacks explicit authorization.
The operator owns package installation, service deployment, credentials, model provenance, active-port disclosure, and any manual GIMP preference change. Never turn an updater failure into a retry loop: preserve the copy, capture the diagnostic, and use the reviewed refresh procedure in installation.
scripts/check_layout.py reports a supplied plug-in root, weights/, optional gimpenv/, model directories, and permission/readability facts without changing anything.scripts/check_plugin_registrations.py scans supplied text files for likely Python-Fu register() calls, procedure names, menu paths, gimpfu imports, and main() calls without executing Python.scripts/check_service_status.py performs one proxy-disabled GET /status against an explicit loopback port, validates a JSON object with service: running, and never starts or configures a process.Use --help first when integrating any script. The layout and registration helpers report missing paths safely; the status helper returns nonzero when liveness is not established.
Historical source evidence used to establish safety boundaries included gimpml/service.py, gimpml/config.json, gimpml/GIMPML.py, gimpml/gimp2/text_*_g2.py, installGimpML.sh, update.py, and syncWeights.py. It showed three local routes, launcher-selected ports, Python-Fu registration patterns, and potentially destructive/networked update behavior. These names are provenance and warnings only: do not locate, open, run, import, or adapt them while following this skill.
Start with this router, then open the relevant bundled reference only after the mode is selected. Keep the final verdict and unresolved blockers explicit.
This sub-skill does not install Python 2, GIMP, virtualenv, model weights, provider credentials, platform GUI packages, or a service deployment. It does not run GIMP, manufacture a service-start command, call model-affecting routes, mutate a GIMP image, or certify GIMP 3. See installation, host compatibility, and troubleshooting for the detailed contracts.