Skip to content
GMartin-DataPublic

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

418 Commits

Folders and files

Repository files navigation

dotfiles

Configuration personnelle pour environnement de développement data engineering / AI engineering. Optimisé pour Crostini (ChromeOS, Debian 12 bookworm) et Ubuntu 22.04.


Contenu

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

Documentation

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 dans claude/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 dans claude/evals/<skill>/ (feynman-mentor, claude-md-skill, tech-watch), corpus CLAUDE.md global dans claude/evals/claude-md/, driver partagé claude/evals/drive-session.py.
  • tasks/ — documents de travail datés (audits, lessons-inbox) ; voir chaque fichier.

Installation sur une machine vierge

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 ~/.zshrc

Installation sur une machine déjà configurée

git clone git@github.com:GMartin-Data/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh
source ~/.zshrc

install.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.


Stack

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/YAML
  • fzf — recherche floue interactive
  • ripgrep — 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)

Claude Code

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é par zsh/.zshrc) avec export TECH_WATCH_MCP_TOKEN=…, la valeur de la variable Cloud Run du serveur tech-watch-mcp — sans elle, l'agent tech-watch n'a pas ses outils MCP

VS Code

  • vscode/settings.json — configuration symlinkée vers ~/.config/Code/User/settings.json
  • vscode/extensions.txt — liste des extensions, installées automatiquement par bootstrap.sh

Pour mettre à jour la liste après ajout/suppression d'extensions :

code --list-extensions > ~/dotfiles/vscode/extensions.txt

Configuration post-bootstrap

Aprè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 login

Outils à configurer manuellement

Ces 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

Sauvegardes

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é.


Notes spécifiques à Crostini (ChromeOS)

  • Ne jamais utiliser sudo reboot dans 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/

Maintenance

maintain        # alias → ~/scripts/maintenance.sh

Log 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>

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages