| name | init |
| description | Bootstrap a new curryTrain project by copying the framework Python template into the user's working directory. Use when the user runs /curry-train:init, asks to "start a new training project with curryTrain", "initialize curryTrain", "scaffold a curryTrain project", or wants the framework code copied locally for editing. |
| argument-hint | [target-dir] [--force] |
| allowed-tools | ["Bash","Read","Write","Glob"] |
| disable-model-invocation | true |
/curry-train:init — bootstrap a curryTrain project
Copy the curryTrain Python template from ${CLAUDE_PLUGIN_ROOT}/template/curry_train/ into the user's working directory so they can edit, install, and extend it as part of their own project.
When to invoke
- User runs
/curry-train:init with an optional target directory.
- User asks: "give me a fresh curryTrain skeleton", "set up curryTrain in this project", "copy the framework here", or equivalent.
Inputs
$1 (optional): target directory. Defaults to ./curry_train relative to the current working directory.
--force flag: overwrite an existing target directory. Do not assume --force if the user did not pass it.
Procedure
-
Resolve the target path. If the user supplied an argument, use it. Otherwise default to ${PWD}/curry_train.
-
Refuse silent overwrite. If the target directory already exists and --force was not supplied, stop and tell the user the directory exists; offer to either remove it or pass --force. Never merge into an existing directory automatically.
-
Reject self-destructive paths. If the resolved target is inside ${CLAUDE_PLUGIN_ROOT}, abort — this would corrupt the plugin source.
-
Copy the template.
cp -r "${CLAUDE_PLUGIN_ROOT}/template/curry_train" "<target>"
find "<target>" -name "__pycache__" -type d -exec rm -rf {} +
find "<target>" -name "*.pyc" -delete
-
Show what was created. Run find <target> -maxdepth 3 -type f | sort and present the file tree so the user immediately sees the layout (Runtime / Primitive / Model / infra / prevalidate / validation / examples).
-
Print next-step guidance. Tell the user, in this order:
- Where the code now lives.
- To
cd into it and pip install -e . if a pyproject.toml exists.
- That the
new-experiment skill is the natural next step (Stage 1: Skeleton) — they can ask in plain English to "scaffold a new experiment" or "add a model called X".
- That the layered architecture (Runtime ↔ Primitive ↔ Model) is documented in the copied
README.md and the stage1-scaffolder skill.
Boundaries
- This skill only copies files. It does not run
pip install, does not git init, does not modify the user's environment, does not download model weights.
- It does not upgrade an existing copy. Upgrading is intentionally a manual diff exercise in V1; a future
/curry-train:upgrade command may automate it.
- It does not start training or run any experiments.
Failure modes to surface
${CLAUDE_PLUGIN_ROOT} not set or template missing: print the resolved value and abort with a clear message.
- Permission denied on copy: surface the OS error verbatim; do not silently retry as a different user.
- Disk full: report the partial copy state and suggest cleanup.
Output style
Keep the post-copy report under 30 lines. Long file trees should be truncated to the top three levels. End with the recommended next command.