--- description: Enable a remote experiment workflow by patching CLAUDE.md with a Remote Experiment Protocol. Performs remote preflight (mkdir + permission check). Does NOT run any experiments. allowed-tools: [ Bash(pwd), Bash(ls:*), Bash(cat:*), Bash(git rev-parse:*), Bash(sed:*), Bash(printf:*), Bash(mkdir:*), Bash(test:*), Bash(ssh:*), Bash(rsync:*), Bash(scp:*) ] --- # /remote-exp # Purpose: Patch CLAUDE.md to enforce remote experiment workflow (review/edit locally, run experiments remotely). # This command sets up the protocol. It does NOT execute experiments. HOST: $1 REMOTE_PATH: $2 ## Hard rules (STRICT) - Do NOT run any experiments in this command. - This command MAY perform remote preflight: connect via ssh, create REMOTE_PATH if missing, and verify write permission. - If remote directory creation or write permission check fails (permission, quota, etc.), STOP and report the failure reason to the user. - Patch CLAUDE.md in a deterministic way using BEGIN/END markers (idempotent). --- ## Step 1: Validate arguments - If $1 or $2 is missing, ask the user to provide: - /remote-exp HOST parsing rule: - If HOST looks like "ip:port" (single ":" and port is numeric), then use: - ssh -p - rsync/scp using "-e 'ssh -p '" - Otherwise use: - ssh - rsync/scp using "-e ssh" --- ## Step 2: Locate repo root and CLAUDE.md - Determine repo root via: - git rev-parse --show-toplevel - Ensure CLAUDE.md exists at repo root; if missing, create it with a minimal header. --- ## Step 3: Remote preflight (no experiments) - Connect to remote (ssh) and ensure REMOTE_PATH exists: - mkdir -p "" - Check write permission: - test -w "" - If any step fails, STOP and show the exact ssh command used + the stderr reason. --- ## Step 4: Initial sync (code only; still no experiments) - Sync local repo to remote REMOTE_PATH using rsync (preferred) or scp fallback. - Exclude: - .git - cc-gen-script/ - cc-gen-doc/ - common build artifacts (node_modules, dist, build, __pycache__, .venv, .pytest_cache) - If rsync is unavailable, fall back to scp (note: scp is slower and may not support excludes; if so, warn and STOP unless the user approves). --- ## Step 5: Patch CLAUDE.md (idempotent) Insert or replace the following block in CLAUDE.md using markers: ...block... The block must include: - the resolved HOST and REMOTE_PATH - the ssh/rsync command templates (with or without -p) - the workflow rules: - review & edit locally - sync to remote before running any heavy experiment - run experiments only on remote - pull back results/artifacts/logs to local after experiment - if remote mkdir/write fails: stop and report - keep changes visible locally for user review After patching, print a short summary in chat (what changed, where the protocol lives, and the exact remote target). --- ## Remote Experiment Protocol block (write exactly into CLAUDE.md) Use the commands computed from HOST parsing: - SSH_CMD - RSYNC_SSH - RSYNC_CMD The block to insert: (1) A clear heading (2) Current remote target (3) Preflight checks (4) Sync rules (5) Results retrieval rules (6) Failure handling rules Do NOT include subjective strategy. Keep it operational and objective.