A copier template that generates complete ML projects, from environment and layout to API, monitoring, RAG and an AI harness. It doesn't just start a project: it ships with the quality pipeline and the governance already wired in.
uv · Copier · Sphinx · PyTorch · FastAPI · MLflow · Optunacopier copy --trust gh:cacelass/dskit mi_proyecto generates a project with the exact ML
flavour you need. Four profiles set the defaults: minimo, estandar,
completo and manual (one question at a time).
supervisado, no_supervisado, redes_neuronales, hibrido; task clasificacion / regresion.
copier update brings improvements from later versions without restarting; answers are kept in .copier-answers.yml.
/health, /info, /predict; Pydantic V2 schemas (make serve).
make mlflow).
artifacts/ (make tune).
make monitor).
make index-rag).
make mutation).
make query).
make docker-run).
make check: lint + typecheck + test + harness in one battery.
make security: bandit + pip-audit; make audit: radon cc + team audit.
patch_paths fixture that isolates the filesystem.
make profile); lockfile regeneration (make lock).
docs/prd.md regenerates from the backlog every time a feature closes.
An AI model generates code much faster than a human reviews it. The harness puts the reins on:
it lives inside the generated repo, travels with the project and is shared by the whole team.
It is provider-agnostic: any coding agent that reads AGENTS.md and can run shell commands can use it.
CLAUDE.md only points to it, no duplication.
lider, explorer, implementer, reviewer) and 30 deterministic Python agents (git, test, docker, data, ml, docs…).
agents/contracts.py declare what each agent may and may not do, validated by tests.
make prompts-check fails CI if they desynchronise.
make assistants-sync mirrors the agents to .claude/agents/; a SessionEnd hook runs the gate when the session closes.
done unless ./init.sh passes in green with real command evidence. That is not a prompt instruction; harness finish applies it in Python, so it cannot be talked around.
data/{raw,interim,processed,external},
models/artifacts/, reports/, tests/, an optional Obsidian
vault/ for project knowledge, and .copier-answers.yml so the template can
evolve without restarting.