% ------------------------------------------------------------------------------ \section{Le fichier CLAUDE.md : quatorze exemples} \label{sec:claudemd} % ------------------------------------------------------------------------------ \begin{enbref} \texttt{CLAUDE.md} est le fichier que Claude Code lit \emph{avant tout autre chose}, à chaque session. Il contient ce que l'agent ne peut pas deviner : les conventions du cours, les fichiers à ne pas toucher, comment vérifier, ce qui vous revient. Ce chapitre explique où il vit (global, dossier, local, sous-dossier, importations), comment l'écrire (court, précis, vérifiable) et donne quatorze fichiers complets à copier : profil personnel, TP de comparaison, bordereau de coût, analyse de ventes, rapport, révision, statistiques en R, travail d'équipe, tuteur, et plus. \end{enbref} \subsection{Où vit la mémoire} Claude Code assemble ses instructions à partir de plusieurs fichiers, du plus général au plus local ; les plus locaux précisent ou l'emportent \parencite{cc_memory}. \begin{figure}[!htb] \centering \begin{tikzpicture}[c/.style={draw=uqoBleu,thick,rounded corners=3pt,text width=12.4cm,minimum height=1.0cm,align=left,font=\small\sffamily,inner xsep=10pt,inner ysep=5pt}] \node[c,fill=black!5,draw=uqoGris,anchor=north west] (m) at (0,0) {\textbf{\faIcon{building}~Géré par l'organisation}\quad{\footnotesize politiques imposées par un employeur ; absent d'un ordinateur personnel}\\ \texttt{/Library/Application Support/ClaudeCode/CLAUDE.md} {\footnotesize (macOS)}}; \node[c,fill=uqoBleu!12,below=0.15cm of m.south west,anchor=north west] (u) {\textbf{\faIcon{user}~Vous, partout}\quad{\footnotesize langue, style, règles de sécurité personnelles (exemple~\ref{ex:global})}\\ \texttt{\textasciitilde/.claude/CLAUDE.md}}; \node[c,fill=uqoOr!15,draw=uqoOr!80!black,below=0.15cm of u.south west,anchor=north west] (p) {\textbf{\faIcon{folder}~Le dossier du travail}\quad{\footnotesize conventions du cours, fichiers protégés, vérifications ; partagé et versionné}\\ \texttt{./CLAUDE.md}}; \node[c,fill=uqoOr!15,draw=uqoOr!80!black,below=0.15cm of p.south west,anchor=north west] (l) {\textbf{\faIcon{user-lock}~Le dossier, pour vous seulement}\quad{\footnotesize vos préférences, votre valeur de $B$ ; ignoré par Git}\\ \texttt{./CLAUDE.local.md}}; \node[c,fill=uqoTeal!12,draw=uqoTeal,below=0.15cm of l.south west,anchor=north west] (s) {\textbf{\faIcon{folder-open}~Un sous-dossier}\quad{\footnotesize chargé seulement quand l'agent y travaille (exemple~\ref{ex:sousdossier})}\\ \texttt{./donnees/CLAUDE.md}}; \node[c,fill=uqoViolet!10,draw=uqoViolet,below=0.15cm of s.south west,anchor=north west] (i) {\textbf{\faIcon{file-import}~Importations}\quad{\footnotesize un fichier de conventions partagé entre plusieurs TP, inclus dans n'importe lequel des fichiers ci-dessus}\\ \texttt{@../conventions\_IMM1033.md}}; \draw[flb,line width=1.2pt] ([xshift=0.45cm]m.south east) -- ([xshift=0.45cm]i.north east) node[midway,right,etiq,align=left] {du général\\ au particulier}; \end{tikzpicture} \caption{Les emplacements de la mémoire de Claude Code, du plus général au plus local} \label{fig:memoire} \end{figure} Trois façons de les modifier : ouvrir le fichier dans n'importe quel éditeur de texte ; taper \texttt{/memory} dans une session pour choisir lequel ouvrir ; ou commencer une requête par \texttt{\#} pour ajouter une ligne au fichier du dossier sans quitter la conversation. La commande \texttt{/init} génère un premier brouillon après avoir exploré le dossier : bon point de départ, mais toujours trop long ; taillez-le. \subsection{Comment l'écrire} La documentation d'Anthropic est directe : un \texttt{CLAUDE.md} est lu à chaque tour, donc chaque ligne coûte du contexte, et « un fichier trop long fait que Claude en ignore la moitié » \parencite{cc_bestpractices}. Six règles. {\small\Needspace{9\baselineskip} \begin{tabularx}{\textwidth}{E{3.2cm}XX} \caption{Six règles d'écriture d'un bon CLAUDE.md}\label{tab:regles-claudemd}\\ \rowcolor{uqoBleu} \hc{Règle} & \hc{Pourquoi} & \hc{Exemple} \\ \endfirsthead \captionsuite{Six règles d'écriture d'un bon CLAUDE.md} \rowcolor{uqoBleu} \hc{Règle} & \hc{Pourquoi} & \hc{Exemple} \\ \endhead \suitepage{3} \endfoot \finTableau \endlastfoot Court & Tout est relu à chaque tour ; au-delà d'une page, l'agent en oublie. & 20 à 40 lignes pour un TP. \\ \rowcolor{uqoBgClair} Ce qu'il ne peut pas deviner & Il lit très bien les fichiers ; il ne connaît pas les conventions du cours. & « Profit entrepreneurial calculé à part, en \% du total direct + indirect. » plutôt que « Il y a une feuille Bordereau. » \\ Impératif et vérifiable & Une règle floue (« sois prudent ») ne change rien ; une règle testable change le comportement. & « Ne jamais coller de valeur à la place d'une formule. Vérifier : changer B en D9, H26 doit changer. » \\ \rowcolor{uqoBgClair} Le pourquoi, en une ligne & Le modèle applique mieux une règle dont il comprend l'objectif. & « Le terrain n'est pas déprécié : convention du cours, énoncé §2. » \\ Le partage des rôles & Sans cela, l'agent fait tout, et vous ne pouvez plus défendre la copie. & « Les formules de calcul sont à ma charge ; tu les vérifies contre l'énoncé. » \\ \rowcolor{uqoBgClair} Pas de doublon avec l'énoncé & Le PDF est là ; le résumer dans \texttt{CLAUDE.md} coûte du contexte deux fois. & « \texttt{enonce.pdf} fait autorité sur toute convention. » et rien d'autre. \\ \end{tabularx} } \begin{piege}[Les quatre erreurs qui reviennent] Un \texttt{CLAUDE.md} de trois pages généré par \texttt{/init} et jamais relu ; des évidences (« fais du bon travail », « sois précis ») ; des descriptions feuille par feuille que l'agent lirait mieux dans le classeur ; et l'oubli de dire ce qui est \emph{à vous}. Dans les quatre cas, l'agent fait « du code correct » avec des conventions génériques, et la copie ne survit pas à l'entretien de vérification. \end{piege} \subsection{Galerie : quatorze fichiers à copier} Chaque exemple est complet et utilisable tel quel après avoir remplacé les valeurs entre crochets. Les numéros de lignes ne font pas partie du fichier. % ------------------------------------------------------------------ 1 \subsubsection{Votre profil, partout : \texttt{\textasciitilde/.claude/CLAUDE.md}} \label{ex:global} Ce fichier est lu dans \emph{tous} vos dossiers. Il ne doit contenir que ce qui est vrai partout : votre langue, votre niveau, vos règles de sécurité personnelles. Rien sur un TP précis. \begin{fichier}[\textasciitilde/.claude/CLAUDE.md --- profil personnel d'un étudiant du baccalauréat] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Qui je suis¿ Étudiant(e) au baccalauréat en administration, profil évaluation immobilière (UQO). Je programme peu : explique chaque commande shell ou script en une phrase avant de l'exécuter. Réponds en français (Québec) ; les termes techniques anglais entre parenthèses à la première occurrence. §fk¡# Comment travailler avec moi¿ - Commence toujours en lecture seule et propose un plan avant d'écrire. - Petites étapes : une modification, une preuve (sortie, valeur), puis la suivante. - Quand tu n'es pas sûr, dis-le ; ne devine jamais un chiffre réglementaire ou une source. - Montre les preuves brutes (valeurs de cellules, sorties de commandes), pas des résumés. §fk¡# Sécurité et confidentialité (non négociable)¿ - Ne lis jamais en dehors du dossier de travail courant. - Aucun accès Web sans que je le demande explicitement dans la requête. - Si un fichier contient un nom de personne réelle, une adresse civique, un code permanent complet ou une clé d'accès, arrête-toi et signale-le avant de continuer. §fk¡# Style¿ - Tableaux Markdown pour comparer ; listes courtes ; pas de préambule ni de conclusion polie. - Nombres au format canadien-français dans les textes que tu rédiges : 1 275 $, 12,4 %. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 2 \subsubsection{TP2 d'IMM1003 : grille de comparaison dans Excel} \label{ex:tp2} \begin{fichier}[TP2\_comparaison/CLAUDE.md --- méthode de comparaison, gabarit Excel chaîné] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ TP2 d'IMM1003 (UQO) : grille d'ajustement pour un bungalow d'Aylmer, 5 comparables. Je rédige et je calcule ; tu assistes (structure, vérification, mise en forme). §fk¡# Fichiers¿ - enonce.pdf : fait autorité sur toute convention. Ne le modifie jamais. - gabarit.xlsx : original, ne jamais écraser. On travaille sur gabarit_travail.xlsx. - Accueil!D9 = B (dernier chiffre de mon code permanent). Ma valeur : [B]. §fk¡# Conventions du cours (priment sur toute convention générique)¿ - Ajustements transactionnels d'abord, en séquence (conditions de vente, financement, date) ; puis ajustements physiques. On ajuste le comparable vers le sujet. - Seuils d'alerte : 15 % brut, 25 % net. Pas de moyenne simple en réconciliation. - Arrondi final au 5 000 $ ; intermédiaires au dollar. §fk¡# Partage des rôles¿ - À moi : le sens et le montant de chaque ajustement, la réconciliation, l'interprétation. - À toi : formules de totaux brut/net et drapeaux (Grille!I12:J16), mise en forme conditionnelle, graphique du Dashboard, vérifications. §fk¡# Vérifier¿ - La chaîne : changer Accueil!D9 (B=2 puis B=9) et rapporter Grille!H26. Les deux valeurs doivent différer. - Aucune valeur collée à la place d'une formule en Grille!C12:J26. - Après toute écriture : lister les cellules modifiées et leurs formules exactes. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 3 \subsubsection{TP2 d'IMM1033 : bordereau de coût neuf} \label{ex:cout} Le \emph{Guide IA} (annexe C) donne la version complète. Voici la variante courte, qui importe les conventions depuis un fichier partagé entre les trois TP du cours (exemple~\ref{ex:imports}). \begin{fichier}[TP2\_bordereau/CLAUDE.md --- bordereau par composantes, avec importation] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ TP2 d'IMM1033 : bordereau de coût de remplacement neuf d'un quadruplex locatif, méthode par composantes. Je rédige et je valide ; tu assistes. §fk¡# Conventions du cours¿ §fs¡@../conventions_IMM1033.md¿ §fk¡# Fichiers¿ - enonce.pdf fait autorité. gabarit.xlsx : ne jamais écraser ; copie datée obligatoire. - Accueil!D9 = B = [B]. §fk¡# Partage des rôles¿ - À moi : coûts unitaires (avec source), quantités, formules par composante, dépréciation. - À toi : structure du tableau, totaux et sous-totaux, contrôle de cohérence, mise en forme. §fk¡# Vérifier¿ - Chaîne : B=2 puis B=9 dans D9 → valeur conclue différente. - Profit entrepreneurial : une seule fois, à part, sur (directs + indirects). - Chaque coût unitaire a une source (nom du guide, édition, page ou URL + date). \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 4 \subsubsection{Un fichier de conventions partagé, importé par \texttt{@}} \label{ex:imports} Placez-le un niveau au-dessus des dossiers de TP (ici \texttt{IMM1033/conventions\_IMM1033.md}). Chaque \texttt{CLAUDE.md} l'importe par la ligne \texttt{@../conventions\_IMM1033.md} ; vous le corrigez à un seul endroit \parencite{cc_memory}. \begin{fichier}[IMM1033/conventions\_IMM1033.md --- importé par les CLAUDE.md des trois TP] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡## Conventions IMM1033 (méthodes du coût) — ne pas remplacer par des conventions génériques¿ - Unités : pieds carrés (pi²) ; coûts en dollars canadiens courants, date précisée. - Coût de remplacement (équivalent utilitaire), sauf mention « reproduction » dans l'énoncé. - Coûts directs et indirects listés séparément ; profit entrepreneurial calculé À PART, en pourcentage du total (directs + indirects), jamais inclus dans les indirects. - Aucune dépréciation appliquée au terrain. - Dépréciation : physique (curable / incurable, courte / longue durée de vie), fonctionnelle (curable / incurable), externe. Une composante n'est dépréciée qu'une fois. - Arrondi final de la valeur conclue au 5 000 $ ; intermédiaires au dollar. - Toute donnée de coût ou de marché a une source primaire (guide, édition, page ou URL + date). Ne jamais inventer un coût unitaire, un facteur de localisation ou un taux. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 5 \subsubsection{Analyse de trente ventes en Python} \label{ex:ventes} \begin{fichier}[analyse\_ventes/CLAUDE.md --- projet d'exploration de données (pandas)] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Exploration de 30 ventes de bungalows (Aylmer, 2025-2026) exportées d'un portail, avant de choisir 5 comparables pour le TP2 d'IMM1003. Python 3.12, pandas, matplotlib. §fk¡# Fichiers¿ - data/ventes_brutes.csv : export original, LECTURE SEULE. Toute transformation écrit dans data/ventes_propres.csv et est documentée dans NOTES.md (colonne, règle, lignes touchées). - analyse.py : le script ; il doit tourner de bout en bout avec `python3 analyse.py`. - figures/ : graphiques PNG, un par question. §fk¡# Règles d'analyse¿ - Prix au pied carré = prix / superficie habitable (pas terrain). Le nommer prix_pi2. - Médiane et écart interquartile par secteur, jamais la moyenne seule. - Signaler les anomalies (prix_pi2 < 150 ou > 600, date hors 2025-2026, doublons) dans un tableau ; ne JAMAIS les supprimer sans me le demander. - Dates au format ISO ; montants en dollars entiers ; pas d'arrondi avant le résultat final. §fk¡# Partage des rôles¿ - À toi : le script, les graphiques, les statistiques descriptives, les contrôles. - À moi : décider quelles ventes retenir et pourquoi ; l'interprétation de la tendance. §fk¡# Vérifier¿ - Après chaque exécution : afficher les 3 premières lignes et le nombre de lignes. - Pour 3 identifiants que je nomme, imprimer les valeurs brutes et calculées côte à côte. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 6 \subsubsection{Rédaction d'un rapport en Markdown ou Word} \label{ex:rapport} \begin{fichier}[rapport\_evaluation/CLAUDE.md --- rédaction assistée, jugement réservé] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Rapport narratif d'évaluation (travail de session IMM1003) rédigé en Markdown dans rapport.md, converti en Word/PDF par pandoc. Données dans data/, figures dans figures/. §fk¡# Ce que tu peux faire¿ - Structure du document (sections attendues d'un rapport narratif), mise en forme, tableaux à partir de mes données, insertion des figures, cohérence des chiffres entre sections (une valeur conclue en section 6 = celle reprise en section 8), orthographe. - Relire une section et signaler : affirmation sans source, chiffre sans démarche, convention du cours non respectée, phrase générique. §fk¡# Ce que tu ne fais pas¿ - Rédiger l'analyse, l'interprétation, la réconciliation ou l'opinion de valeur. Si je te le demande, refuse et propose plutôt des questions à me poser. - Inventer une source, une norme, une décision, une donnée de marché. §fk¡# Sources¿ - Toute donnée citée a une entrée dans sources.md (organisme, titre, URL, date consultée). Si une phrase de rapport.md cite un chiffre absent de sources.md, signale-le. §fk¡# Format¿ - Français, ton professionnel, phrases courtes. Nombres : 612 000 $, 5,5 %. - Ne réécris jamais un paragraphe entier : propose la modification, je l'applique. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 7 \subsubsection{Réviser pour l'examen} \label{ex:revision} \begin{fichier}[revision\_intra/CLAUDE.md --- dossier d'étude, mode tuteur] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Révision de l'intra d'IMM1003 (séances 1 à 6). Mes notes : notes/*.md (une par séance). Rien de ce que nous produisons ici n'entre dans une remise (niveau 2 du cours). §fk¡# Ta posture : tuteur, pas répondeur¿ - Pose une question à la fois ; attends ma réponse ; corrige ENSUITE, à partir de mes notes seulement. Si mes notes ne permettent pas de trancher, dis « tes notes ne le précisent pas » au lieu d'inventer. - Commence par l'application (cas concret à Gatineau), pas par la définition. - Quand je me trompe, ne donne pas la bonne réponse tout de suite : donne un indice, puis un deuxième, puis la réponse avec la référence à la séance. §fk¡# Suivi¿ - Tiens à jour erreurs.md : date, notion, mon erreur, la règle. Relis-le au début de chaque session et recommence par les notions où j'ai échoué. §fk¡# Interdit¿ - Générer des « résumés » de mes notes : je les fais moi-même (c'est ça qui fait apprendre). - Aller chercher sur le Web des définitions : le cours a ses conventions. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 8 \subsubsection{Statistiques en R (cours quantitatifs)} \label{ex:r} \begin{fichier}[regression\_hedonique/CLAUDE.md --- projet R] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Régression hédonique sur 400 ventes (Gatineau) pour un travail de méthodes quantitatives. R 4.4, tidyverse, fixest. Scripts dans R/, données dans data/, sorties dans output/. §fk¡# Conventions¿ - Un script par étape : 01_import.R, 02_nettoyage.R, 03_modeles.R, 04_tableaux.R ; `Rscript R/00_tout.R` doit tout rejouer sans intervention. - Jamais de setwd() ; chemins relatifs via here::here(). - Prix en log ; superficie en log ; effets fixes de secteur et de trimestre. - Erreurs-types robustes (HC1) par défaut ; le dire dans chaque tableau. §fk¡# Partage des rôles¿ - À toi : code, tableaux de régression (modelsummary), diagnostics (VIF, résidus). - À moi : le choix des variables, l'interprétation des coefficients, la conclusion. §fk¡# Vérifier¿ - Après un modèle : afficher n, R², et le coefficient de log(superficie) avec son IC. Repère du cours : élasticité de l'aire ≈ 0,5 ; si l'estimation en est loin, signale-le au lieu de l'expliquer. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 9 \subsubsection{Travail d'équipe : \texttt{CLAUDE.md} partagé et \texttt{CLAUDE.local.md} personnel} \label{ex:equipe} Le fichier \texttt{CLAUDE.md} est versionné dans le dépôt de l'équipe ; chaque membre ajoute un \texttt{CLAUDE.local.md} (ignoré par Git) pour ses réglages à lui \parencite{cc_memory}. \begin{fichier}[travail\_equipe/CLAUDE.md --- commun aux trois membres] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Travail de session en équipe de trois (IMM1033) : étude de faisabilité d'un projet résidentiel. Dépôt Git partagé. Chaque membre a un sous-dossier : marche/, couts/, finance/. §fk¡# Règles communes¿ - Ne modifie que les fichiers du sous-dossier de la personne qui te parle (voir CLAUDE.local.md) ; propose une note dans A_DISCUTER.md pour le reste. - Un commit par tâche, message en français : « couts: ajoute la ventilation par composante ». - Hypothèses partagées dans hypotheses.md (une ligne par hypothèse, source, date) : c'est la seule source de vérité pour les taux, les coûts unitaires et le calendrier. §fk¡# Vérifier¿ - Avant tout commit : `python3 verif/coherence.py` doit passer (mêmes hypothèses partout). \end{Verbatim} \end{fichier} \begin{fichier}[travail\_equipe/CLAUDE.local.md --- propre à un membre, non versionné] \begin{Verbatim}[commandchars=§¡¿,numbers=left] Je suis [Prénom], responsable du sous-dossier couts/. Mon B = [B]. Je travaille sur macOS ; ouvre les fichiers Excel avec openpyxl, pas avec Excel. Réponds en français ; tutoiement. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 10 \subsubsection{Un sous-dossier avec ses propres règles} \label{ex:sousdossier} Un \texttt{CLAUDE.md} placé dans un sous-dossier n'est chargé que lorsque l'agent lit ou modifie des fichiers de ce sous-dossier \parencite{cc_memory}. Utile quand un dossier mêle données brutes (à protéger) et rapport (à éditer). \begin{fichier}[projet/donnees/CLAUDE.md --- règles spécifiques aux données brutes] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Ce dossier contient des données brutes¿ - brut/ est en LECTURE SEULE : aucun fichier n'y est créé, modifié ni supprimé. - Toute version nettoyée va dans propre/ avec le même nom + suffixe _propre, et une ligne dans propre/JOURNAL.md : date, fichier source, transformation, nombre de lignes avant/après. - Les fichiers de brut/ viennent de portails (APCIQ, SCHL, Ville de Gatineau) : la licence interdit de les redistribuer ; ne les copie jamais hors de ce dossier. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 11 \subsubsection{Mode apprentissage : l'agent qui vous laisse écrire} \label{ex:tuteur} À combiner avec le style \emph{Learning} (§\ref{sec:styles}) : l'agent écrit la structure, vous écrivez les formules qui comptent. \begin{fichier}[TP3\_revenu/CLAUDE.md --- méthode du revenu, apprentissage actif] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ TP3 d'IMM1003 : méthode du revenu, triplex de Hull. Objectif : que J'APPRENNE à monter un état des revenus et dépenses normalisé. Tu es un tuteur, pas un exécutant. §fk¡# Règles d'apprentissage¿ - Pour toute cellule de calcul (RBP, vacance, RBE, chaque dépense, RNE, TGA, valeur), laisse un marqueur TODO(moi) avec une phrase qui décrit ce que la formule doit faire ; je l'écris. Tu vérifies ensuite ma formule contre la description et l'énoncé. - Tu peux écrire : en-têtes, mise en forme, cellules de source, formules de total simple. - Quand je te demande « donne-moi la formule », réponds par une question qui m'aide à la trouver. Après deux échecs de ma part, donne-la avec l'explication. §fk¡# Conventions du cours¿ - RNE avant service de la dette. Taux d'inoccupation : celui de la SCHL pour la RMR de Gatineau (source + date en Accueil), même si tous les logements sont loués. - Ratio de dépenses attendu 35-45 % du RBE pour un triplex ; en dehors, me le signaler. - TGA extrait de ventes comparables (pas d'un tableau générique). \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 12 \subsubsection{Nettoyage de données publiques} \label{ex:donnees} \begin{fichier}[tableau\_de\_bord/CLAUDE.md --- TP1, indicateurs de marché de Gatineau] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ TP1 d'IMM1003 : tableau de bord du marché résidentiel de Gatineau. Sources téléchargées dans sources/ (APCIQ, SCHL, Banque du Canada, Statistique Canada), tableau de bord dans tableau_de_bord.xlsx (gabarit du cours, chaîné à Donnees). §fk¡# Règles¿ - Chaque indicateur importé garde : valeur, période, unité, organisme, URL, date de consultation (colonnes fixes de Donnees). Une ligne sans URL et date est refusée. - Ne jamais taper une valeur « de mémoire » : si un fichier de sources/ ne la contient pas, dis-le et arrête-toi ; je vais la chercher. - Uniformiser : dates ISO, montants en $ courants, taux en % avec deux décimales, périodes en fin de trimestre. Documenter chaque conversion dans TRANSFORMATIONS.md. §fk¡# Vérifier¿ - Pour chaque indicateur : afficher la valeur brute lue dans le fichier source et la valeur écrite dans Donnees, côte à côte. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 13 \subsubsection{Un dossier de notes LaTeX ou Markdown} \label{ex:notes} \begin{fichier}[notes\_IMM1033/CLAUDE.md --- prise de notes structurée] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Mes notes de cours d'IMM1033 en Markdown, un fichier par séance (S01.md … S14.md), compilées en PDF par pandoc. Glossaire dans glossaire.md. §fk¡# Règles¿ - Ne réécris jamais mes notes ; tu peux corriger l'orthographe, uniformiser les titres (## Notion, ### Exemple, ### Piège) et proposer des liens entre séances. - Quand une notion apparaît sans définition dans glossaire.md, propose une entrée À PARTIR DE MES NOTES ; si elles ne suffisent pas, écris « à compléter en classe ». - Génère, à ma demande, 5 questions d'application par séance dans questions/SXX.md, sans réponse ; les réponses vont dans questions/SXX_reponses.md seulement si je le demande. \end{Verbatim} \end{fichier} % ------------------------------------------------------------------ 14 \subsubsection{Un petit site Web (portfolio de stage)} \label{ex:site} \begin{fichier}[portfolio/CLAUDE.md --- site statique HTML/CSS] \begin{Verbatim}[commandchars=§¡¿,numbers=left] §fk¡# Contexte¿ Portfolio personnel : site statique (HTML, CSS, un peu de JavaScript), sans framework, déployé sur GitHub Pages. Pages : index.html, projets.html, contact.html. §fk¡# Règles¿ - Pas de dépendance externe (ni CDN ni bibliothèque) ; tout dans css/ et js/. - Accessibilité : alt sur chaque image, contraste AA, navigation au clavier. - Aucune donnée personnelle au-delà de mon prénom et de mon courriel UQO ; aucun nom de client ni d'immeuble réel dans les projets décrits (cas du cours seulement). - Avant de commiter : ouvrir les trois pages avec `python3 -m http.server` et me donner l'URL ; je vérifie moi-même dans le navigateur. \end{Verbatim} \end{fichier} \subsection{Quoi mettre où : le tableau récapitulatif} {\small\Needspace{9\baselineskip} \begin{tabularx}{\textwidth}{L{3.6cm}XX} \caption{Où placer chaque type d'instruction}\label{tab:ou-placer}\\ \rowcolor{uqoBleu} \hc{Fichier} & \hc{Y mettre} & \hc{Ne pas y mettre} \\ \endfirsthead \captionsuite{Où placer chaque type d'instruction} \rowcolor{uqoBleu} \hc{Fichier} & \hc{Y mettre} & \hc{Ne pas y mettre} \\ \endhead \suitepage{3} \endfoot \finTableau \endlastfoot \texttt{\textasciitilde/.claude/CLAUDE.md} & Langue, niveau, style, règles de sécurité personnelles valables partout. & Quoi que ce soit propre à un cours ou à un TP. \\ \rowcolor{uqoBgClair} \texttt{./CLAUDE.md} & Conventions du cours, fichiers protégés, partage des rôles, vérifications ; ce qui se partage avec l'équipe. & Votre valeur de $B$ si le dossier est partagé ; vos préférences d'affichage. \\ \texttt{./CLAUDE.local.md} & Vos réglages personnels dans un dossier partagé : $B$, système d'exploitation, tutoiement. & Des règles dont l'équipe a besoin (elles seraient invisibles pour elle). \\ \rowcolor{uqoBgClair} \texttt{./sous-dossier/CLAUDE.md} & Règles qui ne valent que là : données brutes en lecture seule, format d'un dossier de figures. & Les conventions générales (déjà dans le fichier parent). \\ Fichier importé par \texttt{@} & Conventions communes à plusieurs TP d'un même cours. & Tout ce qui change d'un TP à l'autre. \\ \rowcolor{uqoBgClair} Ligne \texttt{\#} en session & Une règle découverte en travaillant (« le gabarit utilise des virgules décimales »). & Des paragraphes : relisez et rangez ensuite avec \texttt{/memory}. \\ \end{tabularx} } \begin{astuce}[Demandez à l'agent de relire son propre CLAUDE.md] En fin de TP, une requête utile : « Relis CLAUDE.md. Quelles règles t'ont servi ? Lesquelles n'ont jamais été utiles ? Qu'aurait-il fallu y écrire pour éviter l'erreur de la cellule I14 ? » Vous obtenez un fichier plus court et plus juste pour le TP suivant. \end{astuce}