3.3 KiB
3.3 KiB
| description | allowed-tools | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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. |
|
/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 "<REMOTE_PATH>"
- Check write permission:
- test -w "<REMOTE_PATH>"
- 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.