| name | new-experiment |
| description | Scaffold a new model + dataset + config triple inside an existing curryTrain project. Activate when the user asks to "add a new model to curryTrain", "scaffold a new experiment", "generate model.py / dataset.py / config.yaml for X", or describes an idea they want to start training. Delegates the actual generation to the scaffolder agent. |
Stage 1 entry point — scaffold a model package
Create a four-file model package (config.py, model.py, checkpoint.py, protocol.py) under curry_train/models/<name>/, plus a starter Hydra config and a minimal dataset adapter. Most of the actual file generation is handed off to the scaffolder agent (see agents/scaffolder.md).
When to invoke
- User says: "add a model called X", "I want to try architecture Y in curryTrain", "scaffold an experiment for Z".
- User has an idea but no code yet — this skill is the entry point for Stage 1 (Skeleton).
Inputs
<model-name> (required): kebab-case identifier. Becomes the registered name in register_model(...). Reject names with spaces, slashes, or non-ASCII characters.
--task (optional): one of lm, cls, mt, cv, snn. Drives the dataset adapter template the agent picks.
--from (optional): a HuggingFace model path the user wants to start from (e.g. --from=Qwen/Qwen2.5-1.5B). The scaffolder uses this to derive shapes and pre-fill config.py.
Procedure
-
Verify the user is inside a curryTrain project. Look for curry_train/__init__.py and curry_train/models.py. If missing, point the user to /curry-train:init.
-
Validate the model name. Lowercase, alphanumeric, hyphens only. If conflict with an existing curry_train/models/<name>/ directory, halt and ask whether to overwrite.
-
Delegate to the scaffolder agent. Spawn the scaffolder subagent with:
- The model name, task type, and (optional) HF source.
- A pointer to the four-file template described in
skills/stage1-scaffolder/SKILL.md.
- Instructions to also create a starter Hydra config under
configs/<name>.yaml.
-
Run preflight asserts. After scaffolding, immediately invoke the checks listed in skills/stage1-preflight-asserts/SKILL.md (zero_grad / mode / shape / leakage). Surface failures back to the user before they try to train.
-
Suggest the next two stages. Print:
- Stage 2: try
skills/stage2-overfit-single-batch (the gold-standard sanity check).
- Stage 3 (when ready): pre-validation skills before scaling up.
Boundaries
- This skill does not train. It only scaffolds.
- It does not download datasets. The dataset adapter is a stub that the user wires up.
- It does not propose hyperparameters — that's
hpo-proposer agent territory in Stage 4.
- For SNN tasks (
--task=snn), the scaffolder uses primitive-lif-neuron and emits a 4D tensor shape contract (B, T, N, D). For non-SNN, shape stays (B, N, D).
Failure modes
- No HF access when
--from was passed: the scaffolder must fall back to asking the user to provide a local config / weights path. See primitive-hf-bridge skill for the offline fallback procedure.
- Conflicting registered model name: halt; do not silently rename.
- Unsupported task type: list the supported set and ask which one applies.