setup-workspace
Skill144 starsChanged 17 days agoBSD-3-ClauseView on GitHub
Detect or scaffold the standard ML workspace layout. Cookiecutter only: directories, README.md files, and src/<pkg>/ stubs. After a first scaffold, turn executed notebooks and the documentation site on by default (no ask).
- Reads credentials
7 other projects use a version of this.
Adopted by
Most recently taken up by
- Richicinschi/studio-ostheir own version, first seen Nov 8, 2026
- probabl-ai/skillsword for word, first seen Oct 27, 2026
- Cassius2584/claude-uni-workspacetheir own version, first seen Oct 22, 2026
- The-AI-Thinker/claude-code-pm-startertheir own version, first seen Oct 15, 2026
- Flop19/legal-workspace-startertheir own version, first seen Oct 8, 2026
- timscheuerai/gtm-architecture-templatetheir own version, first seen Sep 14, 2026
Other versions7 projects use a version of this.
Word for word · 1
- probabl-ai/skills★ 144100% same
Edited · 0
None found.
Wrote their own version · 6
- The-AI-Thinker/claude-code-pm-starter★ 13same name
- Flop19/legal-workspace-starter★ 8same name
- Cassius2584/claude-uni-workspace★ 5same name
- timscheuerai/gtm-architecture-template★ 2same name
- hunterbohm/solo-staff★ 0same name
- Richicinschi/studio-os★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-python-packageSkill
- audit-ml-pipelineSkill
- build-ml-pipelineSkill
- choose-python-librarySkill
- evaluate-ml-pipelineSkill
- explore-ml-dataSkill
- export-ml-notebookSkill
- export-ml-projectSkill
- export-ml-siteSkill
- frame-ml-problemSkill
- manage-ml-backlogSkill
- model-ml-pipelineSkill
- persist-ml-gitSkill
- plot-ml-figureSkill
- research-ml-practiceSkill
- review-ml-choicesSkill
- review-ml-experimentSkill
- search-ml-literatureSkill
- setup-gitSkill
- setup-ml-projectSkill
- setup-python-envSkill
- shape-user-ideaSkill
- smoke-test-ml-pipelineSkill
- sync-ml-reportsSkill
- triage-ml-taskSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 6 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 68
If fresh or manager-only, resolve G-PKG-NAME.
- Very specific: line 97
After scaffold on fresh or manager-only, if policy.notebooks and policy.site are both null (never set): persist both on this turn —
- Distinctive: line 105
Do not AskUserQuestion for notebooks or site.
- Distinctive: line 122
When that load is allowed:
- Very specific: line 132
If either flag is already true or false, do not overwrite and do not install from this step.
- Very specific: line 134
If setup-ml-project dispatched this turn and is in this session, return to it.
- Very specific: line 148
Do not write experiments/01_baseline.py or any experiment body.
- Very specific: line 151
Do not re-run skore.evaluate or project.put, and do not paste that snippet.
- Distinctive: line 155
Do not ask env manager, tabular library, or skore mode.
- Very specific: line 156
Do not run pixi init / uv init.
- Very specific: line 157
Do not env-bootstrap or editable-install.
- Very specific: line 161
Never pixi add / uv add from this skill.
- Distinctive: line 162
Do not write experiment or exploratory data analysis bodies.
- Distinctive: line 164
Do not AskUserQuestion for notebooks or site.
- Distinctive: line 165
Do not persist notebooks/site on an existing layout.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Set Up Workspace
Decide where artifacts live. Do not design an experiment here.
Human-facing prose
Details: references/human_facing_prose.md. Scaffolded design
notes, JOURNAL, and folder READMEs describe this workspace's
analysis — not the skills framework, the CLI, or the command that
produced an output. Questions and replies use the same
data-science language (import name, notebooks, documentation
site) — not G-* names, catalog skill ids, or the wrapper CLI.
Say "workspace setup", not setup-workspace.
<!-- results-embed: … --> is a site marker. Authoring hints
stay in this skill. style is ruff only.
Detection
src/orjournal/present → existing. Reuse names and folders. Do not scaffold again.- Manager manifest without
src/<pkg>/→ manager-only. Still scaffold; keep existingpyproject.toml. No--force. - Otherwise → fresh. Ask G-PKG-NAME, then scaffold.
Lookup
Detect the layout, then take the one row that matches and run its steps from the Sequence below. Do not stop after reading the table.
| Layout | Import name | Steps | Notebooks and site |
| fresh | not recorded. "you pick", "go fast", and "no preference" do not record it | 1 only, then stop. Call AskUserQuestion (folder name is the default option). Do not scaffold this turn. | do not persist |
| fresh | policy.package or src/<pkg>/ already names it | 1 (no ask), 2, 4, 5. Do not write experiments/01_baseline.py or any experiment body, even if asked so it can run right away. | step 4 |
| manager-only | not recorded. "you pick", "go fast", and "no preference" do not record it | 1 only, then stop. Call AskUserQuestion. Do not scaffold this turn. | do not persist |
| manager-only | policy.package or src/<pkg>/ already names it | 1 (no ask), 2, 4, 5. Do not write experiment bodies. | step 4 |
| existing | user asks to re-run skore.evaluate or project.put | Refuse and stop. Say evaluation and project.put are not this skill. Do not paste that snippet. | do not ask, persist, or install |
| existing | any other request | 3, 5 | do not ask, persist, or install |
An unresolved import name is the ask row only. Steps 2, 4, and 5
run on a later turn, once policy.package or src/<pkg>/ names
it. Step 4 does not overwrite a flag that is already true or
false. Step 5: a turn dispatched by setup-ml-project returns
to it; a standalone turn runs git end-turn --stage setup.
Sequence
- If fresh or manager-only, resolve G-PKG-NAME. When it is
not already recorded, call
AskUserQuestionand stop this turn. Do not persistpolicy.packageand do not scaffold until a later turn. “You pick” / “go fast” / “no preference” does not record it. The question is thesrc/<pkg>/import name, with the folder name as the default option. Each ask states in 2–4 lines what the answer authorizes — the scaffolded tree, the persisted policy key, the toolchain a gate implies — and the detected facts it rests on; a file link is an addition, never the context. Do not confirm in prose instead of the tool. A matching[project] name+src/<pkg>/already resolves it — do not re-ask. A recordedpolicy.packagealso resolves it. Do not re-ask. Whensetup-ml-projectdispatched this turn andpolicy.packageis set, do not ask again. Scaffold is step 2, and only once the name is already resolved. Astatuspackage of null does not reopen the ask. Persist a resolved import name withpython -m skore_skills policy set package <pkg>. Fresh / manager-only:
python -m skore_skills scaffold --package <pkg>The CLI writes the tree and each folder
README.md. Do not recreate those files from memory.- Existing: do not scaffold again. Do not invent files. No
rename, no overwrite, no
--force. Do not persist or ask notebooks/site. After scaffold on fresh or manager-only, if
policy.notebooksandpolicy.siteare bothnull(never set): persist both on this turn —python -m skore_skills policy set notebooks truepython -m skore_skills policy set site trueDo not AskUserQuestion for notebooks or site. Persist both before the user-facing line. That line says executed notebooks and the documentation site are on; the user can turn either off later. Do not say they are still unset or null. Do not write notebooks or site into JOURNAL; policy is the record. Do not ask.
Same turn after persist:
Load
add-python-packageonly ifstatus.skills.add-python-packageis true andpolicy.env.managedis true. Else one-line skip: namejupytext/nbclient/ipywidgets/nbconvert/mkdocs-material; do not inventpixi add/uv add; skipsite init. Do not invent that skill's steps.When that load is allowed:
- notebooks true →
add-python-packageforjupytext,nbclient, andipywidgets(allenv routeagent), plusnbconvertwhen site is also true — stage turns write the notebook viewer with--html. Do not leave them asask. Do not convert. - site true →
add-python-packageformkdocs-material(agent), thenpython -m skore_skills site init.
If either flag is already
trueorfalse, do not overwrite and do not install from this step.- notebooks true →
- If
setup-ml-projectdispatched this turn and is in this session, return to it; else stop. Standalone:python -m skore_skills git end-turn --stage setup. If JSONactionisinvoke, loadpersist-ml-gitonly ifstatus.skills.persist-ml-gitis true and stop; it returns to triage. If persist is missing, name the pendingstagedpaths and stop. Otherwise loadtriage-ml-taskonly ifstatus.skills.triage-ml-taskis true; else stop.
Stop conditions
- "You pick", "go fast", and "no preference" do not resolve the
import name. Call
AskUserQuestionand stop. Do not scaffold or persist in that turn, and do not use the folder name yourself. - Do not write
experiments/01_baseline.pyor any experiment body. "So we can run it right away" is not a reason. Scaffold writesexperiments/README.mdonly. - Do not re-run
skore.evaluateorproject.put, and do not paste that snippet. AKeyErrorfromproject.getis not a scaffold turn. Say evaluation andproject.putare not this skill, and stop. - Do not ask env manager, tabular library, or skore mode.
- Do not run
pixi init/uv init. - Do not env-bootstrap or editable-install. Export toolchain
(
jupytext,nbclient,ipywidgets,nbconvert,mkdocs-material) only viaadd-python-packageafter persisting notebooks/site. Neverpixi add/uv addfrom this skill. - Do not write experiment or exploratory data analysis bodies.
- Never
git commithere. - Do not AskUserQuestion for notebooks or site.
- Do not persist notebooks/site on an existing layout.
Layout (CLI writes this)
src/<pkg>/
experiments/
journal/
data_analysis/
data/
audit/
tests/smoke/
scratch/Each directory has README.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

