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
execution-and-monitoringSelect and operate local, SSH, or Slurm experiment execution with bounded, zero-LLM monitoring, safe paths, truthful terminal outcomes, and actionable recovery.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this skill when an experiment must be launched, inspected, or recovered and backend choice or liveness semantics matter. It covers the execution boundary, not the research loop or provider/tool-selection policy.
execution.mode value and the monitor settings.local, ssh, or slurm.ssh and slurm,
controller state remains local while the tool-visible workspace and logs are
remote. A Slurm login node is a submit/file-operation host, not a place to
keep a watcher, tmux, srun --wait, or another persistent job process.slurm_setup and
extra scheduler directives as trusted operator configuration.pid and log_file; for Slurm, pid is the integer
Slurm job id. Then use the zero-LLM monitor until a terminal decision.See backends.md for constructors, factory fields, transport, path rules, and scheduler state mapping. See monitoring.md for the polling contract and result shape. See troubleshooting.md before retrying.
The execution block uses these fields:
mode: local (default), ssh, or slurm.ssh_host, remote_workspace, remote_python (default python3), and
ssh_args (default []) for remote modes.slurm_partition and slurm_time; it accepts
slurm_gpus_per_job, slurm_gres, slurm_qos, slurm_account,
slurm_setup, slurm_extra_sbatch, slurm_unknown_grace_polls, and
slurm_time_buffer.monitor.poll_interval defaults to 900 seconds, monitor.zero_llm defaults
to true, and monitor.notify_on_complete defaults to true.Run the bundled read-only validator when changing these values:
python scripts/check_backend_config.py --config config.yaml
It does not connect, submit, launch, or write. Add --workspace-root DIR --path RELATIVE_PATH to check a path against a workspace, including symlink
escape detection.
The launch tool parses command text with shell-like quoting into argv, rejects
an empty command and a small set of destructive executable names, and delegates
with shell=False. Semicolons and pipes therefore remain ordinary argument
text; they do not create a second command. A log path is normalized and checked
before the backend creates its parent or opens it.
The monitor performs only backend PID/job liveness, a short log tail, and GPU
status while the job is alive. It makes no LLM call. On completion it reads up
to 50 log lines, extracts common loss, accuracy, FGD, FID, epoch, and
step values, and asks final_status() for the backend's terminal evidence.
status is failed only when success is explicitly false; otherwise it is
completed with success possibly unknown. Treat success: null as
indeterminate, not proof of successful training.
For Slurm, never reap a job while sacct reports PENDING or any running-bucket
state, even after slurm_time + slurm_time_buffer: queue time is not bounded by
--time. Only unconfirmed probes are bounded by consecutive unknown grace and
the wall-clock backstop. A confirmed Slurm FAILED, TIMEOUT, CANCELLED,
OUT_OF_MEMORY, or other failure state must remain failed and be carried into
state/ledger/reporting. A confirmed COMPLETED is the only Slurm success.
local: inspect the final log tail and rerun only after deciding whether the
process ended normally; PID-only final status is inherently indeterminate.ssh: first verify host/workspace/helper reachability; retry transient SSH
actions without changing the remote command. Do not create a remote watcher.slurm: distinguish PENDING from unknown. Query sacct first; use its
state as truth, and expect the monitor's bounded unknown handling only when
accounting/transport cannot confirm the job. A job reaped by the backstop has
unknown terminal state; reconcile the scheduler and log before calling it a
success or resubmitting.