Repository navigation
ORGANISATION_FICHIERS
Fichier : ORGANISATION_FICHIERS.md · Dossier : wiki (racine) Branche : master (wiki) · Auteur : hprzeta · MAJ : 2026-06-03
🧭 Rôle de cette page. C'est la carte de contexte du projet : elle dit où vit quoi, ce qui est versionné, ce qui est secret, et comment Claude récupère le contexte. Page stable — elle ne contient aucun état de session (celui-ci vit dans
Handoff.mdlocal et dans JOURNAL / STACK). À lire en début de session avant d'aller chercher le reste sur GitHub.
Il n'y a pas 3 endroits où ranger les fichiers, mais 6, qu'il ne faut jamais confondre :
| # | Lieu | Versionné | Public | Pour qui / contenu type |
|---|---|---|---|---|
| 1 |
Disque local ~/projet_zeta/ (hors git) |
❌ | non | état de travail volatil : Handoff.md, brouillons, logs de run |
| 2 |
Repo principal hprzeta/Riemann_Lab (4 branches) |
✅ | oui | code (src/), site (docs/), config (CLAUDE.md, .gitignore), skills versionnés (.claude/skills/) |
| 3 |
Repo wiki Riemann_Lab.wiki (master) |
✅ (dépôt séparé) | oui | doc lisible : cours, formulaires, guides, JOURNAL, STACK, rapports |
| 4 |
Skills Claude Code ~/.claude/skills/ → versionnés vers .claude/skills/ du repo |
local → ✅ | — | skills exécutés par l'IA en terminal |
| 5 |
Skill Claude.ai web /mnt/skills/user/riemann-lab/
|
géré à part (read-only) | — | skill exécuté par l'IA web ; édité via copie puis déployé |
| 6 | Fichiers du projet Claude.ai | ❌ (snapshot RAG) | non | copie cherchable pour une conversation — pas une source de vérité |
⚠️ Wiki = fichiers à plat uniquement. GitHub Wiki ne sert pas les pages depuis un sous-dossier. Toute page doit être à la racine du dépôt wiki (niveau-0-prerequis.md, jamaiscours/niveau-0…).
Pour n'importe quel fichier, se poser dans l'ordre :
-
Un humain le lit, ou une machine l'exécute / le configure ?
-
lit → documentation → wiki (lieu 3) — ou
docs/(lieu 2) si c'est le site. -
exécute / configure → code ou skill → repo (lieu 2) :
src/,.claude/,CLAUDE.md.
-
lit → documentation → wiki (lieu 3) — ou
-
Stable / partageable, ou état de session volatil ?
- stable → versionné.
- volatil → local seulement (lieu 1).
Et une garde permanente : secret → nulle part (ni repo, ni wiki, ni chat, ni fichiers projet).
| Type de fichier | Lieu | Note |
|---|---|---|
Code .py, .c, .h, Makefile
|
repo src/
|
versionné |
Site index.html, animation_*.html
|
repo docs/
|
GitHub Pages |
CLAUDE.md (racine + cascade) |
repo, à chaque niveau | synchroniser la racine sur les 4 branches ; cascade = branche du code concerné |
Skills (SKILL.md…) |
repo .claude/skills/
|
jamais dans le wiki |
| Cours, lexiques, formulaires, Formules_zeta, Bibliotheques, guides | wiki | doc lisible |
| JOURNAL (historique daté, append-only) | wiki | mémoire long terme |
| STACK (outils, roadmap, formation, matériel) | wiki | référence stable |
Rapports / analyses (analyse_problemes_vN_vN+1, validations) |
wiki ou repo docs//pdf/
|
livrables datés |
analyse_problemes_v5_v6.md |
wiki | doc technique v5→v6 |
analyse_problemes_v4_1_v6_synthese.md |
wiki | synthèse globale v4.1→v6 |
compute_zeros_v6.py |
repo src/calculs/optimisation/
|
script actif v6 |
scan_arb.c |
repo src/calculs/optimisation/c_modules/
|
détection C v6 (Z_double) |
animation_gaps_gue.html |
repo docs/
|
site v6 — GUE vs STEP |
animation_ntermes_rs.html |
repo docs/
|
site v6 — N_termes et bottleneck |
recap_session_20260610_11.pdf |
local claude-traitement-journalier/
|
RAG BrainVault |
Handoff.md (état courant + prochaine action) |
local (~/riemann_handoff/) |
volatil, réécrit chaque session — hors git (Handoff.md est dans .gitignore) |
Logs de run *.log
|
local | bruit — ignoré par .gitignore (*.log) |
| Gros CSV (T=10000…) | local /mnt/data ou Git LFS |
ne pas gonfler git ; petits CSV → repo data/
|
Secrets .mcp.json, tokens, clés |
nulle part | ignoré par .gitignore sur les 4 branches |
Ces deux dossiers du dépôt de code sont locaux, hors git, car ils contiennent des adresses réseau (IP internes, IP publique, domaine DDNS).
-
Mécanisme :
.git/info/excludedu clone (fichier local, non versionné — donc invisible sur GitHub), ligne 21pdf/script/et ligne 22pdf/cluster/. Même schéma quemd/(local, hors git via.git/info/exclude). -
Aucune règle dans le
.gitignoreversionné : un clone neuf n'a pas ces exclusions. -
Ne jamais retirer la ligne 22 : elle protège aussi
doc_zeta_secure_cluster_enrichi.pdfetdoc_zeta_secure_cluster_enrichi_cartes_20261004.pdf(IP, DDNS, e-mail).
Exceptions poussées
| Fichier | Lieu | Comment |
|---|---|---|
Guide_Distribution_PC1PC2_Riemann_Lab.pdf |
pdf/cluster/ |
contrôlé le 18/10/2026 (texte + rasterisation des 12 pages) ; ajouté avec git add -f
|
Guide_Scripts_Cluster_Zeta_AAAAMMJJ_public.pdf |
pdf/script_public/ |
version publiable (IP et domaine DDNS remplacés par des placeholders), générée par scripts/build_pdf_guide_scripts_public.py depuis le .md privé ; dossier distinct de pdf/script/, donc non exclu |
Règle : toute publication d'un PDF de ces dossiers passe par le skill riemann-security-review
et un contrôle visuel (rasteriser chaque page et la regarder : pdftotext ne lit pas le texte
contenu dans les images). Un seul doute = on ne pousse pas.
Tout fichier .md / .pdf porte un en-tête et un pied de page identifiant fichier · dossier · branche · auteur · date. Ce format rend la dérive visible d'un coup d'œil (un fichier daté de 6 semaines sur la mauvaise branche saute aux yeux).
En-tête :
> **Fichier :** NOM.md · **Dossier :** chemin (`~/projet_zeta/...` ou « wiki racine »)
> **Branche :** NOM_BRANCHE · **Auteur :** hprzeta · **MAJ :** AAAA-MM-JJPied de page :
*NOM.md · dossier · branche NOM_BRANCHE · hprzeta · MAJ AAAA-MM-JJ · N lignes*
⚠️ Champ « Branche » pour un fichier synchronisé (ex.CLAUDE.mdracine présent sur 4 branches) : indiquer la branche source canonique, pas un verrou — par exempleBranche : Riemann_Lab_C (source) → sync main · IA · Test. Pour un fichier propre à une seule branche (cascadec_modules), mettre la vraie branche unique.Le
.gitignoren'est pas un.md: il ne porte pas d'en-tête/pied de page.
L'auto-push « Claude Code → fichiers du projet Claude.ai » n'existe pas : ce sont deux systèmes séparés. Mais ce n'est pas nécessaire, car Claude.ai web peut lire le GitHub public directement (git clone / fetch). Le vrai relais est donc :
Claude Code pousse sur GitHub → Claude tire depuis GitHub.
Conséquences pratiques :
- Public & poussé (code, site, pages wiki, rapports publics, JOURNAL, STACK) → ne pas uploader dans le projet Claude.ai. Donner la branche + dernier commit, Claude va chercher l'état courant lui-même.
- Non-public & utile ponctuellement (Handoff local, log d'un run qu'on débogue, brouillon pas encore poussé) → coller dans le chat au moment où on en a besoin.
- Secret → jamais, nulle part.
- Le dossier de fichiers du projet Claude.ai peut rester quasi vide : au mieux, cette page comme carte de contexte, et le reste se récupère sur GitHub.
💡 Coût token : la simple présence d'un fichier dans le projet ne coûte presque rien (récupération à la demande, par recherche) ; c'est la lecture d'un gros fichier qui coûte. Donc on évite d'y laisser de gros CSV / logs.
Pour un fichier pas encore poussé ou un lot pénible à coller : plutôt qu'encombrer le projet Claude.ai, on utilise une branche orpheline dédiée inbox-ia (isolée du graphe de merge). On y dépose, Claude lit la branche, puis on archive en local daté (~/archive_ia/AAAAMMJJ/) et on vide la branche.
⚠️ Public + historique permanent : l'inbox ne contient QUE du safe-pour-toujours. Jamais un secret, jamais un log à chemins/identifiants sensibles → ceux-là se collent dans le chat (zéro trace).- Le
git rm+ archive = rangement, pas confidentialité (l'historique git garde tout). - Nom volontairement distinct des branches de code (
Riemann_Lab_IA) pour éviter la confusion. - Brique réutilisable pour l'Objectif 2 : l'agent autonome pourra y déposer / lire automatiquement.
Workflow : git checkout inbox-ia → déposer les fichiers → commit + push → « lis la branche inbox-ia » → une fois traité : archive locale datée + git rm + push + retour sur la branche de travail.
.mcp.json, tokens GitHub (PAT), clés SSH privées, mots de passe, identifiants d'API.
- Ignorés par
.gitignore(motif.mcp.json) sur les 4 branches — vérifier avecgit check-ignore -v .mcp.jsonsur chaque branche (sortie vide = NON protégé). - Un secret exposé = secret mort : on le révoque toujours, on ne suit jamais le lien « unblock-secret » de GitHub.
-
.gitignoren'est pas synchronisé automatiquement entre branches → après toute manip multi-branches, revérifiergit check-ignorepartout.
- JOURNAL — historique daté, append-only
- STACK — outils, roadmap, matériel, formation
- Guide-Git-GitHub — workflow git détaillé
- Bonnes-Pratiques-Claude-Code — gestion du contexte / tokens
ORGANISATION_FICHIERS.md · wiki racine · branche master · hprzeta · MAJ 2026-10-18 · 169 lignes