SPB Git

Repository Public Research preview

annexes.tex 10.6 KB 180 lines latex

1% ------------------------------------------------------------------------------2\section{Aide-mémoire d'une page}3\label{ann:aidememoire}4% ------------------------------------------------------------------------------56{\small\Needspace{9\baselineskip}7\begin{tabularx}{\textwidth}{E{3.4cm}X}8\caption{Aide-mémoire : lancer, piloter, protéger, vérifier, déclarer}\label{tab:aidememoire}\\9\endfirsthead10\captionsuite{Aide-mémoire}11\endhead12\suitepage{2}13\endfoot14\finTableau15\endlastfoot16Lancer & \texttt{cd} dans le dossier du TP ; \texttt{claude} ; ou \texttt{claude --permission-mode plan} ; \texttt{claude -c} pour reprendre la dernière session ; \texttt{claude -r} pour en choisir une. \\17\rowcolor{uqoBgClair}18Piloter & \kbd{Maj}+\kbd{Tab} modes ; \kbd{Échap} interrompre ; \kbd{Échap}\kbd{Échap} ou \texttt{/rewind} revenir en arrière ; \texttt{@fichier} désigner ; \texttt{!cmd} exécuter ; \texttt{\#règle} mémoriser ; \kbd{Ctrl}+\kbd{V} coller une image. \\19Contexte & \texttt{/context} voir ; \texttt{/compact <consigne>} résumer ; \texttt{/clear} repartir ; lectures ciblées ; sous-agent pour explorer. \\20\rowcolor{uqoBgClair}21Mémoire & \texttt{./CLAUDE.md} conventions et rôles ; \texttt{./CLAUDE.local.md} vos réglages ; \texttt{\textasciitilde/.claude/CLAUDE.md} profil ; \texttt{@fichier.md} importer ; \texttt{/memory} éditer ; \texttt{/init} brouillon (à raccourcir). \\22Protéger & Un dossier par TP, sans données personnelles ; mode \texttt{default} ou \texttt{plan} sur un travail noté ; \texttt{.claude/settings.json} : \emph{deny} sur \texttt{enonce/}, \texttt{gabarit.xlsx}, \texttt{WebFetch}, \texttt{WebSearch}, \texttt{rm}, \texttt{curl} ; hook \texttt{PreToolUse}. \\23\rowcolor{uqoBgClair}24Vérifier & Preuves brutes (formules exactes, sorties) ; test de la chaîne ($B=2$, $B=9$) ; recalcul indépendant en Python ; \texttt{/verif-chaine} ; sous-agent relecteur ; trois valeurs recalculées à la main. \\25Apprendre & \texttt{/output-style learning} ; \texttt{CLAUDE.md} tuteur ; « une question à la fois, corrige à partir de mes notes ». \\26\rowcolor{uqoBgClair}27Coût & \texttt{/usage} (abonnement) ; \texttt{/cost} (API) ; \texttt{/model sonnet} par défaut, \texttt{opus} pour un problème dur ; \texttt{/clear} entre les tâches. \\28Déclarer & \texttt{/declaration} brouillon ; \texttt{/export} transcription ; outil + modèle (\texttt{/status}), étapes, vérifications, renseignements soumis ; signer. \\29\rowcolor{uqoBgClair}30Dépanner & \texttt{/status} ; \texttt{/doctor} ; \texttt{/permissions} ; \texttt{/hooks} ; \texttt{/help} ; \texttt{claude update} ; deux corrections ratées = \texttt{/clear} et requête neuve. \\31\end{tabularx}32}3334% ------------------------------------------------------------------------------35\section{Modèle de CLAUDE.md à remplir}36\label{ann:modele}37% ------------------------------------------------------------------------------3839À copier dans le dossier de chaque travail, puis à compléter ; supprimez les lignes qui ne s'appliquent pas. Trente lignes au plus.4041\begin{fichier}[CLAUDE.md --- gabarit vierge pour un travail du cours]42\begin{Verbatim}[commandchars=§¡¿,numbers=left]43§fk¡# Contexte¿44[Cours] [TP n° et titre] (UQO). Objet : [immeuble / méthode]. Je rédige et je calcule ;45tu assistes : [structure, vérification, mise en forme, exploration de données].4647§fk¡# Fichiers¿48- enonce.pdf : fait autorité sur toute convention. Ne jamais modifier.49- gabarit.xlsx : original, ne jamais écraser ; on travaille sur gabarit_travail.xlsx.50- Accueil!D9 = B = [B]. [autres fichiers : données, scripts, figures]5152§fk¡# Conventions du cours (priment sur toute convention générique)¿53- [convention 1, avec le pourquoi en quelques mots]54- [convention 2]55- Arrondi final au 5 000 $ ; intermédiaires au dollar.56- Toute donnée de marché ou de coût a une source primaire (URL ou page + date). Ne jamais57  inventer un chiffre.5859§fk¡# Partage des rôles¿60- À moi : [les formules de calcul de la méthode, les choix, l'interprétation].61- À toi : [totaux, drapeaux, mise en forme, graphiques, vérifications, scripts].6263§fk¡# Vérifier¿64- Chaîne : B=2 puis B=9 dans Accueil!D9 → [cellule de résultat] doit changer.65- Aucune valeur collée à la place d'une formule dans [zones de travail].66- Après toute écriture : lister les cellules modifiées et leurs formules exactes.6768§fk¡# Interdits¿69- Aucun accès Web. Aucune lecture hors de ce dossier. Aucune donnée personnelle.70\end{Verbatim}71\end{fichier}7273% ------------------------------------------------------------------------------74\section{Fichier de réglages complet et commenté}75\label{ann:settings}76% ------------------------------------------------------------------------------7778Le format JSON n'accepte pas de commentaires : les lignes \texttt{//} ci-dessous sont des explications à retirer si vous copiez le fichier. À enregistrer sous \texttt{.claude/settings.json} dans le dossier du travail \parencite{cc_settings}.7980\begin{fichier}[.claude/settings.json --- réglages complets pour un dossier de TP]81\begin{Verbatim}[commandchars=§¡¿,numbers=left]82{83  §fc¡// Modèle par défaut et style de sortie pour ce dossier¿84  §fk¡"model"¿: §fs¡"sonnet"¿,85  §fk¡"outputStyle"¿: §fs¡"Learning"¿,8687  §fk¡"permissions"¿: {88    §fc¡// default : lit sans demander, demande avant d'écrire ou d'exécuter¿89    §fk¡"defaultMode"¿: §fs¡"default"¿,90    §fc¡// ce qui passe sans question¿91    §fk¡"allow"¿: [92      §fs¡"Bash(python3 verif_chaine.py*)"¿,93      §fs¡"Bash(git status)"¿, §fs¡"Bash(git diff*)"¿, §fs¡"Bash(git log*)"¿,94      §fs¡"Bash(ls*)"¿, §fs¡"Bash(pwd)"¿95    ],96    §fc¡// ce qui est interdit, quoi qu'il arrive (deny l'emporte sur allow)¿97    §fk¡"deny"¿: [98      §fs¡"Read(./enonce/**)"¿, §fs¡"Edit(./enonce/**)"¿, §fs¡"Write(./enonce/**)"¿,99      §fs¡"Edit(./gabarit.xlsx)"¿, §fs¡"Write(./gabarit.xlsx)"¿,100      §fs¡"Read(~/.ssh/**)"¿, §fs¡"Read(./.env)"¿,101      §fs¡"WebFetch"¿, §fs¡"WebSearch"¿,102      §fs¡"Bash(rm*)"¿, §fs¡"Bash(curl*)"¿, §fs¡"Bash(wget*)"¿, §fs¡"Bash(sudo*)"¿103    ]104  },105106  §fc¡// scripts exécutés à coup sûr (voir chapitre 7)¿107  §fk¡"hooks"¿: {108    §fk¡"PreToolUse"¿: [109      { §fk¡"matcher"¿: §fs¡"Edit|Write"¿,110        §fk¡"hooks"¿: [ { §fk¡"type"¿: §fs¡"command"¿, §fk¡"command"¿: §fs¡"python3 .claude/hooks/protege.py"¿ } ] }111    ],112    §fk¡"PostToolUse"¿: [113      { §fk¡"matcher"¿: §fs¡"Edit|Write"¿,114        §fk¡"hooks"¿: [ { §fk¡"type"¿: §fs¡"command"¿,115                    §fk¡"command"¿: §fs¡"python3 .claude/hooks/apres_edition.py"¿ } ] }116    ]117  },118119  §fc¡// variables d'environnement pour les commandes lancées par l'agent¿120  §fk¡"env"¿: { §fk¡"PYTHONDONTWRITEBYTECODE"¿: §fs¡"1"¿, §fk¡"LANG"¿: §fs¡"fr_CA.UTF-8"¿ },121122  §fc¡// conservation des sessions locales (jours)¿123  §fk¡"cleanupPeriodDays"¿: 60124}125\end{Verbatim}126\end{fichier}127128% ------------------------------------------------------------------------------129\section{Arborescence type d'un dossier de TP}130\label{ann:arbo}131% ------------------------------------------------------------------------------132133\begin{terminal}[Un dossier de TP prêt pour Claude Code]134\begin{Verbatim}[commandchars=§¡¿]135TP2_comparaison/136├── CLAUDE.md                 §co¡← conventions, rôles, vérifications (annexe B)¿137├── CLAUDE.local.md           §co¡← votre B, vos préférences (non versionné)¿138├── .claude/139│   ├── settings.json         §co¡← permissions et hooks (annexe C)¿140│   ├── hooks/protege.py      §co¡← bloque l'écriture dans enonce/ et gabarit.xlsx¿141│   ├── hooks/apres_edition.py142│   ├── skills/verif-chaine/SKILL.md143│   └── agents/relecteur.md144├── enonce/enonce.pdf         §co¡← lecture seule (deny)¿145├── gabarit.xlsx              §co¡← original, jamais écrasé¿146├── gabarit_travail.xlsx      §co¡← la copie sur laquelle on travaille¿147├── data/ventes_brutes.csv    §co¡← export du portail, lecture seule¿148├── analyse.py  verif_chaine.py149├── figures/150├── JOURNAL.md                §co¡← trace de ce que l'agent a fait, pour la déclaration¿151└── .gitignore                §co¡← ~$*.xlsx, sauvegardes/, *.local.md, settings.local.json¿152\end{Verbatim}153\end{terminal}154155% ------------------------------------------------------------------------------156\section{Glossaire}157\label{ann:glossaire}158% ------------------------------------------------------------------------------159160\begin{description}[style=sameline,leftmargin=4.2cm,labelwidth=4cm,itemsep=2pt]161  \item[Agent] Modèle de langage placé dans une boucle qui lui donne des outils et s'arrête quand la tâche est jugée finie.162  \item[Allow / ask / deny] Les trois verdicts d'une règle de permission : passe sans question ; demande ; interdit.163  \item[Bac à sable] Restriction des commandes shell à certains dossiers et au réseau autorisé.164  \item[\texttt{CLAUDE.md}] Fichier d'instructions lu au début de chaque session ; conventions, fichiers protégés, rôles, vérifications.165  \item[\texttt{CLAUDE.local.md}] Même rôle, propre à vous, ignoré par Git.166  \item[Compaction] Résumé automatique ou demandé (\texttt{/compact}) de l'historique pour libérer du contexte.167  \item[Contexte] Tout ce que le modèle relit à chaque tour : instructions, historique, fichiers lus, sorties.168  \item[Harnais] Le programme autour du modèle : boucle, outils, permissions, hooks, mémoire. Claude Code est un harnais.169  \item[Hook] Script exécuté par le harnais à un moment de la boucle, sans passer par le modèle ; le code de sortie 2 bloque l'action.170  \item[Jeton] Unité de texte (environ trois quarts de mot) qui sert à compter le contexte et le coût.171  \item[MCP] \emph{Model Context Protocol} : standard ouvert de connexion de l'agent à des outils externes.172  \item[Mode plan] Lecture et raisonnement seulement ; aucune écriture.173  \item[Point de restauration] Instantané des fichiers pris à chaque requête ; \texttt{/rewind} y revient.174  \item[Session] Une conversation dans un dossier ; reprise par \texttt{--continue} ou \texttt{--resume}.175  \item[Skill] Procédure réutilisable (\texttt{.claude/skills/nom/SKILL.md}) appelée par \texttt{/nom}.176  \item[Sous-agent] Instance séparée à qui l'agent principal délègue une sous-tâche ; seul un résumé revient.177  \item[Style de sortie] Façon de répondre : \emph{Explanatory} explique chaque choix ; \emph{Learning} vous laisse écrire les parties clés.178  \item[Test de la chaîne] Changer $B$ dans Accueil et vérifier que la valeur conclue change : le premier geste du correcteur.179\end{description}180
Files main
Menu

Theme