project-init

Initialize a new ML research project with aligned paper (LaTeX) and code (Python) repositories under a shared parent folder. Use when starting a new research project, setting up a paper+code workspace, or initializing a new ML research environment.

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 "project-init" with this command: npx skills add a-green-hand-jack/ml-research-skills/a-green-hand-jack-ml-research-skills-project-init

Project Init Workflow

Use this workflow when starting a new research project that requires both a LaTeX paper repo and a Python code repo, managed in parallel under a shared project folder.

Expected Output Structure

~/Projects/<ProjectName>/
├── paper/    ← LaTeX repo (init-latex-project)
├── code/     ← Python ML repo (init-python-project)
└── PROJECT.md ← Project overview linking both repos

Step 1 — Gather Project Information

Ask the user the following in a single message:

  1. Project name: What is the project called? (used as the parent folder name, e.g. DemoProject)
  2. Parent directory: Where should this project live? (default: ~/Projects/)
  3. Paper venue: Which conference/journal? (iclr, cvpr, icml, acm, acl, or none for generic arXiv)
  4. Research summary (brief): What is the method? What datasets/benchmarks? What metrics?
    • This will be used to pre-fill the paper/ structure and PROJECT.md
  5. GitHub: Do you have GitHub repos ready for paper and code? If yes, provide SSH URLs (or skip to add later).

Wait for the user's answers before proceeding.


Step 2 — Create the Parent Folder

mkdir -p <parent-dir>/<ProjectName>

Step 3 — Initialize the Paper Repo

Run the init-latex-project skill:

bash ~/.claude/skills/init-latex-project/scripts/init.sh <ProjectName>-paper <parent-dir>/<ProjectName>/paper [--venue <venue>] --git

Note: Expand ~ to the actual home directory (e.g. /Users/jieke). Use --venue only if a venue was specified; omit for generic arXiv.

After the script runs:

  1. Add a sections/daily_experiments.tex file to the paper:
% Daily Experiments Log
% Add experiment entries in reverse chronological order (newest first).
%
% Template for each entry:
%   \subsection*{YYYY-MM-DD — <short title>}
%   \textbf{Setup:} <method variant, dataset, config>\\
%   \textbf{Result:} <key numbers, metric values>\\
%   \textbf{Observation:} <what worked, what didn't>\\
%   \textbf{Next:} <follow-up experiment planned>
  1. Add \input{sections/daily_experiments} to paper/main.tex in the appendix area (before \end{document}), with a section header:
\section*{Daily Experiments (Internal)}
\input{sections/daily_experiments}
  1. If GitHub SSH URL was provided for paper:
git -C <parent-dir>/<ProjectName>/paper remote add origin <paper-github-url>
git -C <parent-dir>/<ProjectName>/paper push -u origin main

Step 4 — Initialize the Code Repo

Invoke the init-python-project skill. Tell the user:

"Now let's set up the code repo. I'll run the init-python-project skill for the code/ directory."

Use the init-python-project skill with the following context already established:

  • Target directory: <parent-dir>/<ProjectName>/code/
  • Project type: new, ML project
  • GitHub URL: from Step 1 (if provided)

Follow all steps in init-python-project as normal. The code repo will be initialized at <parent-dir>/<ProjectName>/code/.


Step 5 — Create PROJECT.md in the Parent Folder

Write <parent-dir>/<ProjectName>/PROJECT.md with the following content (fill in from the user's research summary in Step 1):

# <ProjectName>

> <One-line description of the research project>

## Research Overview

**Method**: <method description>
**Datasets**: <datasets used>
**Benchmarks**: <benchmarks / baselines compared against>
**Metrics**: <evaluation metrics>

## Repository Structure

| Repo | Path | Purpose |
|------|------|---------|
| paper | `./paper/` | LaTeX paper (<venue or arXiv>) |
| code  | `./code/`  | Python implementation (uv)     |

## GitHub Remotes

| Repo | URL |
|------|-----|
| paper | <paper-github-url or TBD> |
| code  | <code-github-url or TBD> |

## Workflow

- **Design changes** (method, datasets, metrics): update `paper/sections/method.tex` first, then implement in `code/`
- **Experiment results**: record in `code/experiments/`, then sync to `paper/sections/daily_experiments.tex`
- **Milestones**: use `add-git-tag` skill in each repo separately
- **Code docs**: use `update-docs` skill in `code/`

## Key Files

- `paper/sections/method.tex` — canonical method description
- `paper/sections/exp.tex` — main experiments section
- `paper/sections/daily_experiments.tex` — running experiment log
- `code/docs/outlines/project_plan.md` — implementation roadmap
- `code/experiments/` — raw experiment outputs and logs

Step 6 — Final Summary

Report to the user:

Project initialized: <ProjectName>

paper/  → <paper-github-url or "local only">
code/   → <code-github-url or "local only">

Key skills for this project:
  - project-sync   → sync experiment results from code to paper
  - add-git-tag    → mark milestones in either repo
  - update-docs    → refresh code documentation

Next steps:
  1. Fill in paper/sections/method.tex with your method details
  2. Fill in paper/sections/exp.tex with planned experiments
  3. Start implementing in code/src/
  4. When you have results, use the project-sync skill to log them in paper

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.

Coding

init-python-project

No summary provided by upstream source.

Repository SourceNeeds Review
Research

add-git-tag

No summary provided by upstream source.

Repository SourceNeeds Review
Research

project-sync

No summary provided by upstream source.

Repository SourceNeeds Review
Research

update-docs

No summary provided by upstream source.

Repository SourceNeeds Review