init-project

Initialize a new research project with standard directory structure, CLAUDE.md, pyproject.toml, and skills. Use at the start of any new notebook-based research project. Run from within the project folder — the folder name becomes the project name.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "init-project" with this command: npx skills add kdkyum/slurm-skills/kdkyum-slurm-skills-init-project

Initialize Research Project

Set up a new research project in the current working directory.

  • Project name: basename $(pwd) (e.g., my-cool-project)
  • Package name: hyphens replaced by underscores (e.g., my_cool_project)
  • Description: $ARGUMENTS if provided, else "Research project"
  • Assets: ~/.claude/skills/init-project/assets/
  • Cluster info: ~/.claude/skills/slurm-info-summary/references/slurm-cluster-summary.md

Steps

1. Derive names

PROJECT_NAME=$(basename $(pwd))
PACKAGE_NAME=$(echo "$PROJECT_NAME" | tr '-' '_')
ASSETS="$HOME/.claude/skills/init-project/assets"

2. Create directory structure

mkdir -p notebooks "src/${PACKAGE_NAME}" attachements research_notes .claude/skills/report
touch "src/${PACKAGE_NAME}/__init__.py"

3. Copy static files (no substitution needed)

cp "${ASSETS}/report-SKILL.md" .claude/skills/report/SKILL.md
cp "${ASSETS}/plotting.py" "src/${PACKAGE_NAME}/plotting.py"

4. Copy and substitute CLAUDE.md

cp "${ASSETS}/CLAUDE.md.template" CLAUDE.md
sed -i "s|{{PROJECT_NAME}}|${PROJECT_NAME}|g; s|{{PACKAGE_NAME}}|${PACKAGE_NAME}|g" CLAUDE.md

5. Copy and substitute pyproject.toml

Use the skill argument ($ARGUMENTS) as description. If empty, use "Research project".

DESCRIPTION="<$ARGUMENTS or 'Research project'>"
cp "${ASSETS}/pyproject.toml.template" pyproject.toml
sed -i "s|{{PROJECT_NAME}}|${PROJECT_NAME}|g; s|{{PACKAGE_NAME}}|${PACKAGE_NAME}|g; s|{{DESCRIPTION}}|${DESCRIPTION}|g" pyproject.toml

6. Copy and substitute .mcp.json from template + cluster info

  1. Read cluster summary at ~/.claude/skills/slurm-info-summary/references/slurm-cluster-summary.md.

    • If it does not exist, tell the user: "Run /slurm-info-summary first to gather cluster info." and stop.
  2. Extract values for a single-GPU shared notebook job from the summary:

    VariableWhat to look forExample (Raven)
    PARTITIONShared GPU partition (1 node, shared access, has GPUs)gpu1
    GPU_TYPEGPU model, lowercasea100
    CPUSPhysical cores per GPU (total physical cores / GPUs per node)18
    MEM_MBMemory per GPU in MB (convert from GB if needed)125000
    TIMEMax walltime for that partition1-00:00:00
  3. Detect CUDA module:

    CUDA_MODULE=$(module avail cuda 2>&1 | grep -oP 'cuda/[\d.]+' | sort -V | tail -1)
    
    • If found: use the module name (e.g., cuda/12.6)
    • If empty: use empty string ""
  4. Copy template and substitute:

    cp "${ASSETS}/.mcp.json.template" .mcp.json
    sed -i \
      -e "s|{{PARTITION}}|${PARTITION}|g" \
      -e "s|{{GPU_GRES}}|gpu:${GPU_TYPE}:1|g" \
      -e "s|{{CPUS_PER_TASK}}|${CPUS}|g" \
      -e "s|{{MEM_MB}}|${MEM_MB}|g" \
      -e "s|{{TIME}}|${TIME}|g" \
      -e "s|{{CUDA_MODULE}}|${CUDA_MODULE}|g" \
      .mcp.json
    

7. Print summary

Show what was created and next steps:

  • uv tool install git+https://github.com/kdkyum/jlab-mcp.git (one-time, if not already installed)
  • uv sync to install project dependencies
  • jlab-mcp start in a separate terminal to launch JupyterLab on a GPU node
  • Start Claude Code in the project directory

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

slurm-info-summary

No summary provided by upstream source.

Repository SourceNeeds Review
General

init-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

init-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

init-project

No summary provided by upstream source.

Repository SourceNeeds Review