Configuration personnelle pour environnement de développement data engineering / AI engineering. Optimisé pour Crostini (ChromeOS, Debian 12 bookworm) et Ubuntu 22.04.
| Fichier / Dossier | Emplacement cible | Description |
|---|---|---|
zsh/.zshrc |
~/.zshrc |
Shell Zsh + Oh My Zsh, plugins, aliases |
git/.gitconfig |
~/.gitconfig |
Identité Git, GPG signing, aliases |
scripts/maintenance.sh |
~/scripts/maintenance.sh |
Maintenance automatisée du conteneur |
vscode/settings.json |
~/.config/Code/User/settings.json |
Configuration VS Code |
vscode/extensions.txt |
— | Liste des extensions VS Code (installées par bootstrap.sh) |
claude/CLAUDE.md |
~/.claude/CLAUDE.md |
Conventions universelles Claude Code |
claude/settings.json |
~/.claude/settings.json |
Configuration Claude Code |
claude/rules/*.md |
~/.claude/rules/ |
Conventions techniques glob-scoped (Python, dbt, Terraform) |
claude/templates/*.md |
~/.claude/templates/ |
Starters pour CLAUDE.md projet (non lu par Claude Code) |
claude/commands/*.md |
~/.claude/commands/ |
Slash commands personnalisées |
claude/hooks/* |
~/.claude/hooks/ |
Hooks SessionStart / PreToolUse / PostToolUse (dashboard, protection, lint) |
claude/skills/ |
~/.claude/skills/ |
Skills personnalisées (dossiers symlinkés) |
claude/agents/ |
~/.claude/agents/ |
Subagents (fichiers individuels) |
claude/agent-memory/ |
~/.claude/agent-memory/ |
Mémoire persistante des subagents |
TODO.md |
— | Évolutions différées avec contexte et critères |
Pointeurs seulement — chaque document fait foi dans son périmètre, rien n'est réénoncé ici :
docs/methodology/responsibility-matrix.md— source de vérité de la gouvernance documentaire (qui écrit quoi, non-overlap, cycles par phase).docs/methodology/workflow-overview.md— vue d'ensemble dérivée, non-normative : cycle de vie projet, carte documentaire, graphe des outils, chemins de lecture.docs/methodology/karpathy-discipline.md— rationale détaillé de la discipline de codage résumée dansclaude/CLAUDE.md.adr/— décisions d'architecture du workflow (ADR atomiques, index dans l'overview §6).- Evals — corpus par command dans
claude/commands/<cmd>/evals/(README dédié par corpus), corpus des skills dansclaude/evals/<skill>/(feynman-mentor,claude-md-skill,tech-watch), corpus CLAUDE.md global dansclaude/evals/claude-md/, driver partagéclaude/evals/drive-session.py. tasks/— documents de travail datés (audits, lessons-inbox) ; voir chaque fichier.
git clone git@github.com:GMartin-Data/dotfiles.git ~/dotfiles
cd ~/dotfiles
# 1. Installer les outils
./bootstrap.sh
# 2. Créer les symlinks
./install.sh
# 3. Recharger le shell
source ~/.zshrcgit clone git@github.com:GMartin-Data/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh
source ~/.zshrcinstall.sh est idempotent : il recrée les liens (ln -sfn) et purge les liens
morts qui pointaient dans ce dépôt sous ~/.claude/{commands,skills,hooks,rules,agents}
(un fichier supprimé du repo, par exemple une command devenue skill, ne laisse
pas de symlink pendant sur les autres machines). Il ne touche jamais un lien sain
ni un lien fait à la main vers un autre emplacement.
Shell
- Zsh + Oh My Zsh
- Plugins : git, zsh-autosuggestions, zsh-syntax-highlighting, z, sudo, fzf, history, docker, vi-mode, alias-tips
Outils système
jq/yq— traitement JSON/YAMLfzf— recherche floue interactiveripgrep— recherche dans les fichiers (alternative à grep)fd— recherche de fichiers (alternative à find)btop— moniteur système interactif (processus, CPU, mémoire, réseau, disque)
Développement
- Node.js via nvm
- Python via uv
- Claude Code
- Google Cloud CLI
- GitHub CLI (
gh) - Docker Engine
Git
- GPG signing actif (clé RSA 4096)
- SSH GitHub (
id_github_chromebook)
Configuration versionnée et portable entre machines. Architecture détaillée et principes de chargement dans claude/README.md.
| Composant | Emplacement | Chargement | Rôle |
|---|---|---|---|
| User CLAUDE.md | claude/CLAUDE.md |
Chaque session | Identité, langue, session discipline |
| Settings | claude/settings.json |
Démarrage | Permissions, hooks, plugins |
| Rules | claude/rules/*.md |
À la demande (glob-scoped) | Conventions Python, dbt, Terraform |
| Templates | claude/templates/*.md |
Jamais (stock pour cp) |
Starters pour CLAUDE.md projet |
| Commands | claude/commands/*.md |
Explicite (/nom) |
Gestes rituels en contexte principal |
| Skills | claude/skills/<name>/ |
Explicite | Workflows spécialisés |
| Agents | claude/agents/*.md |
Délégation | Subagents en contexte isolé |
| Hooks | claude/hooks/* |
Événementiel | Automatismes déclenchés par l'harness |
| Agent memory | claude/agent-memory/<agent>/ |
Lu/écrit par subagents | Mémoire custom portable |
Commands : adr, catchup, grill, immunize, planning, prd, progress
Hooks : block-force-push, block-rm-rf, block-dbt, protect_env (PreToolUse), ruff-check (PostToolUse)
Skills : teach, coach-pedagogique, code-mentor, dp-coach, code-review, feynman-mentor, claude-md, tech-watch
Subagents : dbt, tech-watch (environnement d'exécution de la skill du même nom ; serveur MCP distant déclaré inline derrière une passerelle stdio uvx mcp-proxy qui ajoute le bearer, code dans GMartin-Data/tech-watch-mcp, privé)
À réinstaller manuellement (hors sync claude.ai, syncClaudeAiSkills: false) :
- plugin
pyright-lsp@claude-plugins-official - skills Anthropic depuis
anthropics/skills:pdf,docx,xlsx,pptx,skill-creator,mcp-builder ~/.zshrc.local(mode 600, hors repo, sourcé parzsh/.zshrc) avecexport TECH_WATCH_MCP_TOKEN=…, la valeur de la variable Cloud Run du serveurtech-watch-mcp— sans elle, l'agenttech-watchn'a pas ses outils MCP
vscode/settings.json— configuration symlinkée vers~/.config/Code/User/settings.jsonvscode/extensions.txt— liste des extensions, installées automatiquement parbootstrap.sh
Pour mettre à jour la liste après ajout/suppression d'extensions :
code --list-extensions > ~/dotfiles/vscode/extensions.txtAprès bootstrap.sh, ces outils nécessitent une authentification manuelle :
# GitHub CLI
gh auth login
# Google Cloud CLI
gcloud auth login
gcloud auth application-default loginCes outils ne sont pas couverts par bootstrap.sh — leur installation implique des dépôts tiers ou des étapes interactives :
| Outil | Documentation |
|---|---|
| Docker Engine | https://docs.docker.com/engine/install/debian/ |
| Google Cloud CLI | https://cloud.google.com/sdk/docs/install |
| VS Code | https://code.visualstudio.com/docs/setup/linux |
Les éléments suivants ne sont pas dans ce dépôt et doivent être sauvegardés séparément :
| Élément | Méthode |
|---|---|
| Clé GPG privée | gpg --export-secret-keys --armor KEY_ID > gpg-backup.asc → stocker hors du conteneur |
| Clé SSH | Copier ~/.ssh/id_github_chromebook sur support externe chiffré |
⚠️ Ne jamais versionner de clés SSH, GPG, tokens ou mots de passe — même dans un dépôt privé.
- Ne jamais utiliser
sudo rebootdans le conteneur (casse la VM) - GPU désactivé (swrast par défaut, pas de virgl)
- Si la VM refuse de démarrer (
vm_start failed), cliquer sur "Manage" dans l'interface Terminal - Partager "My Files" avec Linux pour accéder à
/mnt/chromeos/MyFiles/
maintain # alias → ~/scripts/maintenance.shLog consultable dans ~/.local/logs/maintenance.log.
⚠️ Le nettoyage des volumes Docker est une tâche manuelle :docker volume ls/docker volume prune/docker volume rm <nom>