Que fait Pack d'Étude ?
Quatre pages liées pour un cours, toujours construites par le kit (kit/ dans github.com/CAFEERON21br18/claude-skills, dossier study-pack/kit) :
- Sílabo : sujets numérotés, essentiels nus.
- Resumo : le cours complet, explications détaillées, ≥ 3 exemples résolus par sujet.
- Revisão : courte leçon + exercices (vôtres / ceux de l'utilisateur), notation, historique, notes, tuteur.
- Plano (optionnel) : plan daté jusqu'à l'examen, graphiques, coches.
Règle zéro : le kit décide l'apparence, vous n'écrivez que le contenu
- Chaque page provient de
kit/build.py. Ne jamais écrire ou modifier le HTML, CSS ou JS d'une page à la main, ne jamais « améliorer » la mise en page, ne jamais ajouter un style spécifique à une page. Mêmes options ⇒ mêmes pages, quel que soit le cours (CDI, AL, LP…). - Vous n'écrivez que le JSON décrit dans
kit/SCHEMA.md(avecjson.dumpen Python), puis vous construisez, vérifiez, publiez. - Les questions sont toujours le formulaire de
kit/questions.py, dans son ordre, dans son format. Ne jamais reformuler, réordonner, diviser ou poser les questions autrement. Ne jamais lister les noms de thèmes sans leurs couleurs. - Si quelque chose ne peut pas être fait avec le kit, dites-le en une ligne dans le message final. Ne le contournez pas en HTML.
Ce que le kit fixe pour vous (ne pas réimplémenter) : l'en-tête (disposition CDI : ligne de cours + titre à gauche, les 4 onglets du pack à droite, outils sur la deuxième ligne : compte à rebours · outils de page · As minhas notas · bouton clair/sombre avec l'icône soleil/lune de ruben-bonanni-ribeiro.dev), le rail des sujets, KaTeX avec polices embarquées, adaptation large-math, notes, chat tuteur, calculateur graphique, mode focus, compte à rebours en jours calendaires, liens dans le même onglet, mise en page téléphone, stockage.
Outils par page (ordre fixe, une option désactivée est simplement absente) :
| Page | Outils d'en-tête | Bande sous l'en-tête |
|---|---|---|
| Sílabo | compte à rebours · Foco · As minhas notas · ☾/☀ | — |
| Resumo | compte à rebours · Calculadora · Foco · As minhas notas · ☾/☀ | — |
| Revisão | compte à rebours · Calculadora · Foco · Só erradas · Histórico · As minhas notas · ☾/☀ | fait / correct / à réviser + enregistré |
| Plano | compte à rebours · Hoje · Esconder feitas · ☾/☀ | sessions faites + heures |
Étape 0 — Kit, et un pack existe-t-il déjà ?
- Obtenez le kit, à chaque fois (il peut avoir changé) :
git clone --depth 1 https://github.com/CAFEERON21br18/claude-skills /tmp/sp && cp -r /tmp/sp/study-pack/kit ./kitLisezkit/SCHEMA.md. - Listez les artefacts de l'utilisateur (liste
Artifact, périmètre "all", limite 200) et cherchez "Sílabo/Syllabus/Programa — ", "Resumo — ", "Revisão/Revision — ", "Plano — " ou des noms proches. - Trouvé → demandez une fois, simplement : "Já existe um pacote de . Atualizo esse ou crio um novo?" (Atualizar o existente (recomendado) · Criar um novo). Si mise à jour : "O que muda?" (Juntar material novo · Mudar opções · Juntar uma página que falta · Refazer os exercícios). Nom ambigu → demandez une fois lequel, avec les correspondances les plus proches et "Nenhum, começar do zero". Non trouvé → continuez en silence.
Mode mise à jour
- Lisez chaque page existante en entier avec
Artifactaction:"read"sanspathmaintenant, à l'Étape 0. La publication est refusée sauf si la version live entière a été lue. Une grande page revient sous forme de fichier sauvegardé : lisez ce fichier par morceaux d'environ 150 à 200 lignes jusqu'à la fin. Sauvegardez également le HTML de chaque page (readavecpath:"index.html") pourextract.py. python3 kit/extract.py pack <pages sauvegardées…>reconstruitpack/(pack.json, topics, plan.json) à partir des pages du kit. Conservezslug,storage,urls, les numéros de sujets et les identifiants d'exercices tels quels.- Ancien pack (sans données du kit) : déduisez les paramètres de la page (thème, police, langue, fonctionnalités, nombre) et écrivez
pack.json. Copiez ses clés de stockage dans"storage"pour que la progression survive : la clé localStorage (par ex.cdi-revisao-v1,lp-revision-v2) dansstorage.ls.revisao, le nom du document db (par ex.revisao,lp-revision-v2) dansstorage.docs.revisao, et de même pourplanoet le préfixe du thème. - Exercices : le même exercice (même feuille + numéro) garde son identifiant ; les nouveaux prennent les numéros suivants. Les tentatives sur les exercices supprimés s'affichent comme "Exercício da versão anterior" : dites-le à la fin.
- Plano conservé : ne jamais déplacer les sessions datées (les coches sont indexées par date + index) ; seulement mettre à jour les textes, les comptes et les liens. Un plan reconstruit à partir de zéro perd les anciennes coches : dites-le à la fin.
- Ne posez que les questions que l'utilisateur souhaite modifier, plus celles que le nouveau matériel soulève (par ex. source s'il a maintenant téléversé des exercices). Réutilisez tout le reste de
pack.json. - Publiez vers l'
urlexistante de chaque page. Terminez par ce qui a changé, par page.
Étape 1 — Rassemblez le matériel (avant toute question)
- Sources : pages Notion nommées ou liées (récupérez chacune, suivez les pages enfants du cours), fichiers téléversés (PDF, docx, diapositives, images, lus en entier), texte collé. Cours nommé mais sans source → cherchez dans Notion, confirmez la page en une ligne.
- Cherchez dans Notion une page nommée comme "lesson-style" (le format d'exercice propre à l'utilisateur). Si trouvée, lisez-la : elle devient la première option de format d'exercice.
- Collectez chaque sujet, définition, théorème, méthode, piège, exemple résolu, exercice avec sa source (feuille + numéro), date d'examen, et pour les exercices de l'utilisateur : sujet, difficulté, méthodes, résolution (complète / partielle / réponse seulement / aucune).
- Énoncés manquants (une feuille avec seulement les réponses) : dites-le en une ligne maintenant, avant les questions, et demandez le PDF. N'inventez jamais un énoncé. Un énoncé reconstruit à partir d'une autre page de l'utilisateur ou du tableau de réponses obtient
"reconstructed": true("enunciado reconstituído"). - Manuel dans Notion : extrayez-le avec un sous-agent par bloc de sujets (par ex. 1–3, 4–8, 9–11), en parallèle. Chacun renvoie du JSON par sujet : définitions et théorèmes avec la numérotation du manuel, pièges, ≥ 4 exemples résolus avec étapes (quoi + pourquoi) et réponse finale ; chacun recalcule chaque nombre avec sympy et signale les erreurs du manuel au lieu de les corriger silencieusement → blocs
bookerr("Gralha no livro"). - Liste maîtresse des sujets : numérotés 1, 2, 3… dans l'ordre du cours, jamais de lettres. Jamais renumérotés plus tard.
- Cours à forte composante de calcul (mathématiques, physique, statistiques, ingénierie, finance) → la question du calculateur est affichée.
- Source illisible → dites laquelle, continuez.
Étape 2 — Les questions (un formulaire fixe)
python3 kit/questions.py --lang <pt|fr|en> [--mine] [--calc] [--lesson-style] [--exam YYYY-MM-DD](--minesi l'utilisateur a téléversé ses propres exercices,--calcsi calcul intense,--lesson-stylesi cette page Notion existe,--examsi une date a été trouvée.)- Appelez le Visualiseur
read_me(moduleelicitation), puisshow_widgetavec exactement le HTML imprimé, titrestudy_pack_details. Rien d'autre dans le widget, pas de question supplémentaire. - La réponse revient en une ligne (
Theme: … · Font: … · Features: … · Exercise format: … · Source: … · Per topic: … · Language: … · Graph calc: … · Tutor: … · Plan: … · Deadline: … · Hours: …). Mappez-la danspack.json. - Pas de Visualiseur dans cette session → envoyez la sortie de
questions.py … --texttextuellement (elle montre chaque thème avec ses couleurs hex) et attendez les réponses numérotées. Pas d'autre format, jamais. - Ignoré ou sans réponse (exécution sans surveillance) → valeurs par défaut : thème Focus, police Atkinson Hyperlegible, barre latérale + focus + historique + progrès + compte à rebours, lesson-style si trouvé sinon choix multiples + réponse libre, 50/50 si l'utilisateur a des exercices sinon les vôtres, 5 par sujet, langue de conversation, calculateur oui si calcul intense, tuteur oui, pas de plan. Dites quelles valeurs par défaut ont été utilisées.
Ensuite, avant de construire :
- Source = seulement les miens et certains sujets n'ont aucun exercice de l'utilisateur → dites quels sujets maintenant, et demandez une fois : les laisser sans exercices (avec l'avis) ou remplir ces sujets uniquement avec des exercices du cours / de Claude.
- Thème "Autre" → copiez le préréglage le plus proche dans
kit/themes.json, changez seulement les couleurs, exécutezpython3 kit/check_contrast.py <fichier>jusqu'à ce qu'il réussisse, mettez l'objet danspack.jsontheme. - Formats → types d'exercices : lesson-style = ses règles (ci-dessous) ; Como na fonte = gardez la forme de la feuille (question ouverte →
free; QCM / V/F uniquement là où la feuille les a) ; Escolha múltipla =mcq; Resposta livre =free; V/F =tf. (Le texte à trous n'est pas dans le kit.)
Étape 3 — Écrivez le contenu (JSON uniquement)
Divisez les sujets en groupes et écrivez-les avec jusqu'à 4 sous-agents en parallèle (par ex. 1–3, 4–6, 7–9, 10–11). Donnez à chacun : kit/SCHEMA.md, le matériel de ses sujets, les réponses de l'Étape 2, et ces règles. Chacun écrit pack/topics/<n>.json avec un script Python (json.dump, jamais à la main) et vérifie chaque calcul avec sympy. Lisez ensuite leurs fichiers et vérifiez qu'ils suivent les règles.
Sílabo (syllabus) : 2–6 puces par sujet, ≤ 12 mots, groupes nominaux / règles / formules, pas de phrases, pas de remplissage. Chaque règle pertinente pour l'examen, rien d'inventé.
Resumo (resumo + examples) : chaque définition, théorème, règle et méthode du sujet, expliqué complètement (intuition → énoncé formel → quand et comment l'utiliser), notation du cours ; blocs def / thm / formula / method / trap. ≥ 3 exemples résolus par sujet, simple → niveau examen, méthodes différentes : d'abord les exercices de l'utilisateur avec résolutions, puis les exemples du cours, puis de nouveaux. Chaque étape a do + why (+ trap là où les étudiants glissent). Étiquette d'origine : la source réelle, ou "new" → "Novo". Ne jamais étiqueter un exemple inventé avec une source de cours. Lorsqu'un QCM est réutilisé comme exemple, ne gardez que les étapes de solution : supprimez les phrases sur les options ("A troca…", "A opção B…", "C e D…").
Revisão (lesson, worked, exercises) : courts blocs de leçon, un exemple worked, puis les exercices.
Sélection des exercices :
- Mine only, All : chaque exercice de l'utilisateur sous son sujet, rien d'ajouté ; un sujet sans aucun reçoit l'avis. Mine only, N : les N meilleurs par sujet — d'abord les plus pertinents pour l'examen, puis variété (chaque méthode une fois, facile → niveau examen, pas deux testant la même chose de la même manière) ; moins de N → tous + avis
shortage. - 50/50, All : chaque exercice de l'utilisateur + autant de Claude, visant ce que les leurs couvrent le moins. 50/50, N : la moitié des exercices de l'utilisateur (choisis comme ci-dessus, arrondie à l'unité supérieure), la moitié de Claude dans le même style.
- Yours : d'abord les exercices du cours, puis de nouveaux dans le même style.
Résolutions données par l'utilisateur : elles sont le corrigé — conservez leurs étapes et leur notation, expliquez chaque étape (quoi, pourquoi, piège). Étapes manquantes : complétez-les, by_claude: true. Vérifiez chaque résolution (recalculez avec sympy) ; une étape erronée n'est jamais corrigée silencieusement : flag avec le texte et la correction. Pas de résolution : écrivez-en une et vérifiez-la.
règles lesson-style (lorsque choisi ; la page Notion gagne si elle en dit plus) : mcq avec exactement 4 options A–D ; questions de calcul gate: true ("Resolve no papel primeiro" + "Já resolvi — mostrar opções") et free_too: true (coller le travail ou une photo, Claude le note) ; options mathématiques une par ligne (disposition par défaut), chacune sur une ligne ; chaque option erronée est une erreur typique et son why la nomme ; la lettre correcte varie (jamais la même lettre plus de deux fois de suite).
Texte : **bold**, jamais d'italiques ; maths en $…$ / $$…$$ ; liens de rappel [[n]] lorsque le rappel est activé.
Étape 4 — Plan (seulement si Plano = oui)
Mettez les paramètres dans pack.json → plan (début = aujourd'hui, hours: "auto" ou le nombre, jours busy avec d'autres examens et leurs notes, weights pour les sujets lourds, hours_note dans la langue du pack), puis python3 kit/plan.py pack. Il imprime ce qui a dû être coupé lorsque le temps est court : dites-le dans le message final.
Étape 5 — Construire, vérifier, publier
python3 kit/build.py pack --out pack/out(s'arrête sur toute erreur de schéma : corrigez le JSON, jamais le HTML).python3 kit/check.py pack/out --shotsdoit imprimer ALL CHECKS PASSED (pas de débordement de page à 400 / 1440 px clair & sombre, rien de coupé, 0 erreur KaTeX, pas de$brut, pas d'erreur JS, en-tête et ordre des outils fixes, pas de liens nouvel onglet, interactions fonctionnelles). Regardez ensuitepack/out/shots/*(en-tête, blocs maths denses, téléphone sombre). Corrigez le JSON, reconstruisez, revérifiez une fois.- Chargez
artifact-capabilitieset déclarez ce que les pages utilisent : stockage de compte (db) et identité du visualiseur (user) pour les notes, l'historique et les coches ; demande à Claude (sample) pour le tuteur et la notation (Sílabo, Resumo, Revisão). Plano :db+useruniquement. - Nouveau pack : publiez les 4 fichiers (les titres viennent des pages, icône "book"), mettez les 4 URL dans
pack.json→urls, reconstruisez, revérifiez, republiez chaque page vers son URL (les onglets et les liens croisés ont besoin des URL). Mise à jour : les URL sont déjà danspack.json; publiez chaque page vers sonurl.
Fin
Quelques lignes seulement : ce qui a été construit ou mis à jour (les fiches portent les liens), tout ce qui manque dans le matériel, les exercices de l'utilisateur / du cours / écrits par Claude, la liste des résolutions de l'utilisateur signalées comme erronées (exercice + étape), ce que le plan a dû couper, et tout ce qui n'a pas pu être activé (tuteur, stockage de compte). Dites une fois que les formules se copient en LaTeX (sélectionner + copier, ou double-cliquer sur une formule). Pas de récapitulatif des étapes.