Set Up Git
SkillDev toolsSets up git in a fresh project by initializing version control, adding ignore rules, and asking before the first commit.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Set Up Git skill
About this skill
Set up git for an ML workspace after scaffolding. Trigger when the user asks to initialize version control, add ignore rules, or make the first commit. This action owns first-time git setup only.
What this skill tells your AI
The instructions your AI receives, as published by probabl-ai/skills in skills/setup-git/SKILL.md and read by ahel’s review.
Pre-flight
Tick, then immediately run the matching sequence step. Do not stop after listing the boxes.
- [ ] status (skip autocommit ask if already on/off, unless the user asked to change it)
- [ ] git init if no .git
- [ ] git ignore-merge (+ --decide / --keep if resolve-dotfiles)
- [ ] git.autocommit ask if null
- [ ] git review (+ review-decide if review_paths) before first commit
- [ ] first commit only if autocommit is on and no HEAD yet
Sequence
- Run
python -m skore_skills status. If the user asked to change the commit choice andpolicy.git.autocommitis alreadyonoroff, re-ask that question and persistonoroff. Do notgit init. Do notgit ignore-merge. If the new value isonand the repo has no HEAD yet, continue at the first-commit review (step 6). If the new value isoff, oronand HEAD exists, stop this sequence: use the return rule in step 10 and do not continue at step 2. Do not invent another commit. Later stages follow the new value. Otherwise, if autocommit is alreadyonoroff, do not ask that question again. - If there is no
.gitdirectory, rungit init. Do not rungit config. - Run
python -m skore_skills git ignore-merge. - If JSON
ambiguous_dotfilesis non-empty, ask once which hidden paths to keep tracked, listing those exact paths in the question and saying that the rest get ignored. Then re-runpython -m skore_skills git ignore-merge --decideplus--keep <path>for each chosen path (no--keepif they keep none). Do not re-ask names gone from the next JSON. Never--keep.envor.skore. - If
policy.git.autocommitisnull, ask once: should later stages persist withgit commit(on) or never (off)? State in 2–4 lines what the answer authorizes — commits at the end of later stages, starting with the first commit this turn — and which paths stay ignored; a file link is an addition, never the context. Persist withpython -m skore_skills policy set git.autocommit onoroff. That answer is also consent for the first commit. It does not authorize tracking paths inreview_paths. - If autocommit is
onand this repo has no HEAD yet, runpython -m skore_skills git review. Ifreview_pathsis non-empty, ask once which of those paths to keep tracked. List each JSONpathandkind, and say that the rest are ignored. Copy paths from the JSON; do not reclassify them. Thenpython -m skore_skills git review-decidewith--keep <path>for each chosen path and--ignore <path>for every other path in that list (no--keepif they keep none). Pass a folder path through with its trailing slash so the ignore line is that folder. Do not re-ask paths gone from the next JSON. Never--keep.envor.skore. Exit code 2 fromgit revieworgit review-decideis the structured review outcome, not a generic command failure: read its JSON, ask the decision, and rerunreview-decide. Ifreview_pathsis empty, do not ask about file size, artifacts, or datasets. - Then
git status.git add -- <paths>only paths that are not still listed inreview_paths, andgit commit -m "<one-line subject>"from this setup turn. Do not ask a second time about autocommit. Never stage.envor.skore. - If autocommit is
off, stop after ignore-merge. Do notgit commit. - If autocommit is already
onand HEAD exists, stop after ignore-merge. Do not invent another commit. Later stages usepython -m skore_skills git end-turn --stage <stage>thenpersist-ml-git, where<stage>issetup,data_analysis,implement,evaluate, orbacklog. When that skill is not installed, those stages report the pending paths instead of committing. - When
setup-ml-projectdispatched this turn and is in this session, return control to it. Otherwise loadtriage-ml-taskifstatus.skillsreports it installed, else stop.
Stop conditions
- Never overwrite
.gitignore;git ignore-mergeunions packaged rules. - Never stage
.env,.skore, or a review path that was not kept. - Never push, create a remote, amend, rebase, or set git identity.
- Do not call
python -m skore_skills git end-turn --stage …to create the first commit.
Signals
- GitHub stars
- 132
- Forks
- 9
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
setup-git- Source
- github.com/probabl-ai/skills