← Browse

@grind-lab-core/training-check

B

Monitors running spatial experiments. Checks output files, log files, and process status. Categorizes results as OK, STALLED, FAILED, or COMPLETE. Fires alerts by appending to output/PROJ_NOTES.md. Run every 15 minutes during Stage 3 of research-pipeline.

skillclaude

Install

agr install @grind-lab-core/training-check --target claude

Writes 1 file into .claude/skills/, pinned to git-d8553cfb.

  • .claude/skills/training-check/SKILL.md

Document


name: training-check description: Monitors running spatial experiments. Checks output files, log files, and process status. Categorizes results as OK, STALLED, FAILED, or COMPLETE. Fires alerts by appending to output/PROJ_NOTES.md. Run every 15 minutes during Stage 3 of research-pipeline. tools: Bash, Read, Write

Skill: training-check

You monitor spatial experiment execution and detect problems early to avoid wasting compute time.


Phase 1: Check Active Experiments

Read output/EXPERIMENT_LOG.md for experiments with status RUNNING or PENDING.

For each running experiment:

  1. Check if output file was recently modified:
python -c "import os, time; f='[output_path]'; age=(time.time()-os.path.getmtime(f))/60; print(f'Modified {age:.1f} min ago')"
  1. Check last few lines of log file for errors:
tail -20 [log_path]
  1. Check for error keywords: Error, Traceback, NaN, inf, MemoryError, Killed
  2. Check for stall: no file modification in > 30 min despite RUNNING status

Phase 2: Classify Status

SignalClassificationAction
Output file updated in last 15 min, no errorsOKContinue monitoring
Log contains "NaN" or diverging lossCLEARLY BADTerminate, log failure
Output file not modified in > 30 minSTALLEDInvestigate process
Results file written, contains valid metricsCOMPLETEUpdate EXPERIMENT_LOG
MemoryError in logMEMORY FAILRetry with smaller sample
Process not running, no output fileDEADRe-queue if < 2 retries

Phase 3: Actions

COMPLETE: Update output/EXPERIMENT_LOG.md status to SUCCESS. Append finding to output/PROJ_NOTES.md. CLEARLY BAD: Kill job if possible. Mark as FAILED in log. Try to fix the issue and retry once. STALLED: Check if process is still alive. If dead: re-queue. If alive: wait 15 more min.


Phase 3.5: Human Checkpoint — Data Synthesis

Honor the HUMAN_CHECKPOINT flag in CLAUDE.md (default: true). This is a monitoring skill, but a few automatic recovery actions silently produce or substitute experiment data. When HUMAN_CHECKPOINT is true, PAUSE and request explicit user approval before any of the following; when false, log the action to output/PROJ_NOTES.md with rationale and proceed.

TriggerShow before pausing
MEMORY FAIL → retry with smaller sample: about to subsample, downsample, or otherwise reduce the dataset to make the run fitOriginal N, proposed N, sampling rule (random / stratified / spatial), seed, and the claim affected by the reduced sample
CLEARLY BAD → fix and retry: about to modify the run (reduce learning rate, drop a feature, change loss, swap optimizer) and re-launchDiagnosed cause, the exact code/config change, and confirmation that the new run is still valid evidence for the original claim
DEAD → re-queue: about to re-launch a run whose previous outputs were partial, with carry-over from a checkpoint or warm-startWhich artifacts will be reused, which will be regenerated, and the risk of mixing pre-/post-fix data in the same result file
COMPLETE → mark SUCCESS: about to write a SUCCESS row using metrics that were imputed / interpolated across missing log lines, or backfilled from a different runWhich numbers were imputed, source, and whether the run should be re-executed instead

Do not mark a run SUCCESS in EXPERIMENT_LOG.md based on synthesized metrics. If the user approves, append Synthesis approved: <action> — <user reason> — <date> to the run's notes.


Phase 4: Progress Report

Output to stdout:

Training Check — <timestamp>
Active experiments: N
  COMPLETE: N
  OK (running): N
  STALLED: N
  FAILED: N

[List any failures or alerts]

Append alerts to output/PROJ_NOTES.md: [ALERT] Experiment <name> failed: <reason>

Trustgrade B

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • warnLicenseno SPDX license detected

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.

Versions

  • git-d8553cfbe2802026-07-31