Claude Code per a perfils tècnics
Webs, anàlisis de dades, dashboards i aplicacions amb l'agent de programació d'Anthropic. Dues sessions de pràctica per construir coses reals amb mètode: una landing a partir d'un brief, una anàlisi reproduïble, un dashboard interactiu i les millores d'una aplicació existent, amb el codi a GitHub.
Primer es crea, després es treballa en equip
Cada sessió té sis blocs, i cada bloc una pràctica amb els prompts per copiar, el que has de comprovar i l'estat final per si t'encalles. Tot gira al voltant del mateix cas: Cafès Roca, tres cafeteries de barri de Barcelona.
Crear amb Claude Code
La web i les dades de Cafès Roca
De la idea al resultat verificat: un brief que es converteix en web, un CSV que es converteix en anàlisi i una especificació que es converteix en dashboard.
- Instal·lació, CLAUDE.md, modes de permís i /rewind
- Una landing a partir d'un brief, amb blog en Markdown
- Un script d'anàlisi reproduïble amb gràfics
- Un dashboard construït a partir d'una SPEC
- Context, cost i bones pràctiques
Per a qui vol construir webs i eines de dades amb un agent i amb criteri.
Obre la sessióRepositoris, qualitat i automatització
L'aplicació d'estoc de Cafès Roca
Treballar com un equip de desenvolupament: incidències, proves, pull requests i revisió, i un agent configurat, connectat i automatitzat.
- Git i GitHub: d'una incidència a una pull request
- Worktrees, /code-review i revisió humana
- CLAUDE.md, habilitats, subagents, hooks i permisos
- MCP amb Playwright, plugins i claude -p
- GitHub Pages, seguretat i criteri
Per a qui vol fer servir l'agent en un projecte de veritat i amb un equip.
Obre la sessióBloc a bloc, amb tots els prompts
Explicacions, pràctiques pas a pas, prompts i ordres amb botó de copiar, comprovacions i enllaços a la documentació oficial d'Anthropic. Les caselles de «fet» es guarden en aquest navegador.
Bloc 1 · Claude Code: l'agent per a projectes de programari
On viu, com treballa, quins models fa servir i què inclou cada pla.
Claude Code és l'agent de programació d'Anthropic. Llegeix un projecte sencer, fa un pla, escriu i edita fitxers, executa ordres i proves, i treballa amb Git i GitHub. Tu decideixes què pot fer sol i què t'ha de preguntar.
| On el fas servir | Com s'obre | Quan el farem servir al curs |
|---|---|---|
| Terminal | Escrius claude dins de la carpeta del projecte | És l'entorn de referència de totes les pràctiques |
| Pestanya Code de l'aplicació d'escriptori | Aplicació de Claude › Code › tries la carpeta | Sessions en paral·lel, vista prèvia i revisió de canvis (bloc 8) |
| VS Code i JetBrains | Extensió de VS Code o connector de JetBrains | Si ja treballes amb un d'aquests editors |
| Navegador | claude.ai/code, sessions al núvol | Tasques llargues que continuen sense el teu ordinador (bloc 11) |
El bucle de l'agent
Totes les pràctiques del curs segueixen el mateix mètode. És el que recomana la guia de bones pràctiques d'Anthropic i és el que fa que el resultat sigui fiable.
Explorar
Llegeix els fitxers i entén què hi ha abans de tocar res.
Planificar
Proposa un pla que pots revisar i corregir. Amb el mode Plan no modifica res.
Implementar
Escriu el codi, executa ordres i corregeix el que falla.
Verificar
Executa proves, obre la pàgina i compara les xifres. Tu decideixes si està bé.
Desar
Un commit amb un missatge clar, perquè cada pas es pugui recuperar.
Models i esforç
| Àlies | Model | Quan fer-lo servir |
|---|---|---|
sonnet | Sonnet 5.5 | La feina de cada dia: ràpid i bo en codi. És el que farem servir per defecte |
opus | Opus 5.5 | Plans, canvis grans i errors difícils |
opusplan | Opus per planificar, Sonnet per executar | Tasques llargues en què el pla és la part delicada |
haiku | Haiku 4.5 | Tasques petites i repetitives |
fable | Fable 5.1 | El model més capaç, amb un límit d'ús propi |
El model es canvia amb /model i l'esforç amb /effort (low, medium, high, xhigh i max). Més esforç vol dir que l'agent pensa més abans d'actuar: més qualitat en tasques complexes, més temps i més consum. Amb Sonnet 5.5 i Opus 5.5 l'esforç per defecte és medium.
Plans i límits d'ús, a 10 d'octubre de 2026
| Pro | Max | Team i Enterprise | |
|---|---|---|---|
| Preu | 15 € al mes amb pagament anual o 18 € al mes, sense impostos | Des de 90 € al mes | Per usuari, amb administració |
| Claude Code | Terminal, aplicació d'escriptori, editors i navegador | El mateix, amb 5 o 20 vegades l'ús de Pro | Segons la configuració de l'organització |
| Límits | Finestres de cinc hores i un màxim setmanal | Més alts | Per usuari |
/usage dins de Claude Code o a Configuració › Ús. Els preus actuals són a claude.com/pricing.Pràctica 1Primer contacte amb l'agent
Objectiu. Obrir Claude Code sobre la carpeta del cas, fer-li explorar el projecte sense modificar res i provar el selector de model i d'esforç.
materials_claude_code_6h.zip a l'Escriptori. Obre la carpeta web-cafes-roca amb VS Code (File › Open Folder) i obre un terminal (Terminal › New Terminal). A Windows també pots fer clic amb el botó dret a la carpeta › Obre al Terminal.claude i prem Retorn. La primera vegada et demana si confies en la carpeta: respon que sí./model per veure el model actiu i /effort per veure el nivell d'esforç. Deixa sonnet i medium.cd web-cafes-roca claude
Explora aquesta carpeta i explica'm què hi ha: quins fitxers, què conté cadascun i què creus que hem de construir. No modifiquis res. Acaba amb tres preguntes que em faries abans de començar.
Segons el brief, quins horaris té el local de Sants i quins colors hem de fer servir a la web?
Bloc 2 · Posada a punt i primera sessió
Comprovar l'entorn, la memòria del projecte i els permisos.
Abans de construir, tres coses: que l'entorn funciona, que l'agent coneix les normes del projecte i que saps quins permisos té i com es desfà un canvi.
Pràctica 2.1Comprovar l'entorn
Objectiu. Confirmar que Claude Code, Git, Node.js i GitHub CLI estan instal·lats i que tens la sessió iniciada.
/exit (o prem Ctrl+C dues vegades).gh auth status diu que no tens sessió, executa gh auth login i tria GitHub.com › HTTPS › Login with a web browser.claude --version claude doctor git --version node --version gh --version gh auth status
claude doctor avisa que no el troba, instal·la Git des de git-scm.com i obre un terminal nou.CLAUDE.md: la memòria del projecte
Claude Code llegeix al començament de cada sessió uns fitxers de text amb instruccions. El principal és CLAUDE.md, a l'arrel del projecte. Hi poses com s'executa el projecte, les normes i el que l'agent no pot deduir llegint el codi.
| Fitxer | Abast | Es comparteix amb l'equip? |
|---|---|---|
~/.claude/CLAUDE.md | Totes les teves sessions, a qualsevol projecte | No |
./CLAUDE.md | Aquest projecte | Sí, va al repositori |
./CLAUDE.local.md | Aquest projecte, només per a tu | No, s'exclou de Git |
./.claude/rules/*.md | Normes per a carpetes o tipus de fitxer concrets | Sí |
A més, Claude Code té una memòria automàtica: apunta el que aprèn de tu i del projecte (ordres, preferències, correccions) i ho recupera a les sessions següents. Tot es revisa i s'edita amb /memory. Un bon CLAUDE.md és curt: menys de 200 línies, concret i verificable.
Pràctica 2.2CLAUDE.md amb /init
Objectiu. Generar el CLAUDE.md de la web i afegir-hi les normes del projecte.
claude a la carpeta web-cafes-roca./init. Claude Code analitza la carpeta i proposa un CLAUDE.md. Accepta'l.CLAUDE.md a VS Code i llegeix-lo: què ha entès bé i què no?/memory per veure quins fitxers de memòria té carregats.Afegeix a CLAUDE.md aquestes normes del projecte: - Web estàtica en HTML, CSS i JavaScript, sense frameworks ni dependències de npm. - Tots els textos de la web en català. Colors i to del brief. - Ha de funcionar bé al mòbil. - Abans de donar una tasca per acabada, obre la pàgina i comprova-la a 390 px d'amplada i a escriptori. - Missatges de commit en català, en imperatiu i curts: «Afegeix el formulari de càtering». Mantén el fitxer per sota de 60 línies.
Modes de permís
| Mode | Què fa sense preguntar | Quan el fem servir |
|---|---|---|
Manual (default) | Només llegir. Demana permís per editar i per executar ordres | Quan comences en un projecte que no coneixes |
Accept edits (acceptEdits) | Llegir i editar fitxers. Demana permís per a les ordres | Implementar un pla que ja has revisat |
Plan (plan) | Llegir i proposar un pla. No modifica res | Explorar i planificar |
Auto (auto) | Un classificador revisa cada acció i atura les arriscades | Tasques llargues quan el compte el té disponible |
Al terminal els canvies amb Maj+Tab. A l'aplicació d'escriptori, amb el selector de mode del quadre de text. També pots començar directament en un mode: claude --permission-mode plan. Hi ha un mode que s'ho salta tot (bypassPermissions); al curs no el farem servir.
Punts de control i /rewind
Cada vegada que l'agent edita fitxers, Claude Code en desa un punt de control. Prem Esc dues vegades amb el quadre de text buit, o escriu /rewind, per tornar enrere: només el codi, només la conversa o totes dues coses. Els canvis fets amb ordres de terminal (per exemple, esborrar un fitxer amb rm) no queden al punt de control. Per això, a més del /rewind, farem commits amb Git.
Pràctica 2.3Provar els permisos i desfer un canvi
Objectiu. Veure com demana permís l'agent en mode Manual i recuperar l'estat anterior amb /rewind.
prova.html existeix.prova.html ja no hi és.Crea un fitxer prova.html amb un títol gran que digui «Prova de Cafès Roca» i res més.
Bloc 3 · Una landing page a partir d'un brief
Del brief al pla, del pla a la pàgina, i de la pàgina a un commit.
Fem la web de Cafès Roca amb el mètode complet. El brief diu què volem; el mode Plan converteix el brief en un pla que revises abans que l'agent escrigui una sola línia.
Pràctica 3La landing de Cafès Roca
Objectiu. Construir una landing adaptada al mòbil a partir de brief_web_cafes_roca.txt, convertir els articles en Markdown en pàgines de la web i desar-ho tot en un repositori de Git.
index.html i estils.css.index.html amb doble clic. Fes servir les eines de desenvolupador del navegador (F12, icona del mòbil) per veure-la a 390 px.captura.png i enganxa el prompt d'iteració. També pots enganxar la imatge directament al terminal: Alt+V a Windows, Ctrl+V a macOS.scripts/articles.mjs; executa'l tu amb node scripts/articles.mjs.Llegeix brief_web_cafes_roca.txt i els tres articles de la carpeta articles/. Vull la landing de Cafès Roca: un index.html i un estils.css, sense dependències. Seccions del brief en aquest ordre: capçalera amb lema i botó al càtering, els tres locals, carta destacada, una secció «Del nostre blog» que de moment quedi buida, formulari de càtering i peu. El formulari no s'envia enlloc: en enviar-lo, valida els camps i mostra un missatge de confirmació a la mateixa pàgina. Fes-me primer les preguntes que necessitis i després un pla amb l'estructura de fitxers i les decisions de disseny.
Mira captura.png. És la secció de la carta vista al mòbil. Els preus queden massa enganxats al nom del plat i la línia de punts no s'alinea. Arregla-ho perquè es llegeixi bé a 390 px i comprova que a escriptori no ha canviat res.
Crea scripts/articles.mjs, en Node.js i sense dependències, que: - llegeixi cada .md de articles/ amb la capçalera entre --- (titol, data, autora, resum); - converteixi el Markdown a HTML: títols, paràgrafs, llistes, negreta, enllaços i taules; - generi una pàgina per article a blog/, amb la mateixa capçalera i estils de la landing i un enllaç per tornar; - ompli la secció «Del nostre blog» d'index.html amb una targeta per article, de més nou a més antic. No l'executis tu: explica'm com l'executo.
Inicialitza un repositori de Git en aquesta carpeta, crea un .gitignore adequat per a una web estàtica i fes el primer commit amb tots els fitxers. Missatge en català.
blog/ hi ha tres pàgines. git log mostra el primer commit.solucions/web-p3-landing hi ha l'estat final d'aquesta pràctica. Copia'n els fitxers a la teva carpeta i continua.Bloc 4 · Anàlisi tècnica de dades
Un script que es pot tornar a executar, gràfics i un informe amb cada xifra traçable.
Al xat, Claude calcula les xifres en un entorn que desapareix quan tanques la conversa. Amb Claude Code, el càlcul queda en un script dins del teu projecte: el pots revisar, executar el mes que ve amb dades noves i ensenyar a qui dubti d'una xifra.
| Anàlisi al xat | Script amb Claude Code | |
|---|---|---|
| On queda el càlcul | A la conversa | A analisi/analisi.mjs, dins del projecte |
| Dades noves el mes que ve | Tornar a demanar-ho | node analisi/analisi.mjs |
| Qui ho pot revisar | Qui tingui la conversa | Tothom que tingui el repositori |
| Comprovar una xifra | Preguntar-la | Llegir la línia de codi que la calcula |
Pràctica 4Les vendes del semestre
Objectiu. Escriure un script reproduïble que llegeixi el CSV de vendes, en tregui les xifres clau, generi tres gràfics i redacti un informe on cada xifra digui d'on surt.
/clear.node analisi/analisi.mjs.analisi/informe.md a VS Code amb la vista prèvia (Ctrl+Maj+V) i mira els gràfics.Analitza dades/vendes_cafes_roca_2026.csv (punt i coma, coma decimal; columnes data, local, categoria, producte, unitats, import_eur). Escriu analisi/analisi.mjs en Node.js, sense dependències, que: 1. Llegeixi i netegi el CSV: comprovi les columnes, descarti les files no vàlides i digui quantes n'ha descartat. 2. Calculi: total del semestre; vendes i pes per local; vendes per mes i local; vendes i pes per categoria; pes de les begudes fredes sobre el total de cada mes; els cinc productes que més facturen. 3. Desi totes les xifres a analisi/resultats.json. 4. Generi tres gràfics SVG a analisi/grafics/: evolució mensual per local, pes de cada categoria i begudes fredes per mes. Tria el tipus de gràfic que respongui millor cada pregunta i explica'm per què. 5. Escrigui analisi/informe.md amb cinc conclusions en llenguatge planer, i al costat de cada xifra la clau de resultats.json d'on surt. Números en format català: 104.827,00 €.
Comprova el total del semestre per un altre camí: suma les vendes per local i per mes i mira que les dues sumes donin el mateix que el total. Ensenya'm les tres xifres.
L'acta de la reunió del 8 de setembre diu que el cafè és el 55 % de la facturació i que les begudes fredes representen el 14 % a l'estiu. Comprova-ho amb resultats.json i explica la diferència. No modifiquis cap fitxer.
Quin gràfic respon cada pregunta
| Pregunta | Gràfic | Per què |
|---|---|---|
| Com evolucionen les vendes de cada local? | Línies | Es llegeix la tendència i es comparen locals d'un cop d'ull |
| Quin pes té cada categoria? | Barres horitzontals ordenades | Els noms llargs hi caben i l'ordre ja diu qui guanya |
| Com creixen les begudes fredes? | Barres per mes amb el percentatge | El que importa és la proporció de cada mes |
| Quant aporta cada local cada mes? | Barres apilades | El total del mes i la part de cada local, alhora |
Bloc 5 · Un dashboard interactiu
Especificar abans de construir: entrevista, SPEC.md, pla i implementació.
Per a una peça més gran, fem que l'agent ens entrevisti i escrigui l'especificació. Després comencem una sessió nova, amb el context net, i construïm a partir del document.
Entrevista
L'agent pregunta qui ho farà servir, quines decisions ha de permetre prendre i quines xifres han de coincidir.
SPEC.md
Un document curt amb dades, contingut, disseny i criteris d'acceptació.
Context net
/clear i una sessió nova que només llegeix la SPEC. Les decisions viatgen al document.
Acceptació
Els números del dashboard han de quadrar amb els de l'anàlisi.
Pràctica 5El quadre de comandament de vendes
Objectiu. Especificar, construir i verificar un dashboard d'un sol fitxer HTML amb filtres per local i per mes, a partir de les dades de vendes.
dashboard/SPEC.md. Si hi falta alguna cosa, demana que l'afegeixi./clear, posa el mode Plan i enganxa el prompt de construcció.dashboard/index.html amb doble clic i prova els filtres.Vull un quadre de comandament de les vendes de Cafès Roca a partir de dades/vendes_cafes_roca_2026.csv. Fes-me una entrevista per definir-lo: una pregunta cada vegada, sobre qui el farà servir, què ha de poder decidir, quins filtres, indicadors i gràfics necessita, i com sabrem que les xifres són correctes. Quan tinguis prou informació, escriu dashboard/SPEC.md amb aquestes seccions: per a qui i per a què, dades, contingut, disseny i criteris d'acceptació. No escriguis codi encara.
Llegeix dashboard/SPEC.md i fes un pla per construir-lo. Restriccions: un sol fitxer dashboard/index.html amb CSS i JavaScript, sense llibreries externes, gràfics en SVG. Perquè s'obri amb doble clic sense servidor, genera les dades agregades en un dashboard/dades.js amb un script scripts/dades-dashboard.mjs. Quan acabis, comprova tu mateix cada criteri d'acceptació i digue'm el resultat.
Compara el dashboard amb analisi/resultats.json: - filtre Tots, de gener a juny: vendes totals i pes de Poblenou; - filtre Gràcia, de maig a juny: vendes. Digue'm si quadren i, si no, quina de les dues xifres és la correcta i per què.
solucions/web-p5-dashboard té la SPEC, l'script de dades i el dashboard acabat.Bloc 6 · Context, cost i bones pràctiques
Què ocupa la memòria de la sessió, quant consumeixes i com treballar perquè duri.
La finestra de context és la memòria de treball de la sessió: hi entren els teus missatges, els fitxers que llegeix l'agent i la sortida de les ordres. Quan s'omple, l'agent rendeix menys i el límit d'ús s'acaba abans.
| Ordre | Què fa | Quan |
|---|---|---|
/context | Mostra què ocupa el context | Quan la sessió s'allarga |
/compact [instruccions] | Resumeix la conversa i allibera espai | En acabar una fase, dient què vols conservar |
/clear | Comença una conversa nova al mateix projecte | En canviar de tasca |
/usage | Consum de la sessió i límits del pla | Abans d'una tasca llarga |
/btw [pregunta] | Pregunta lateral que no queda a l'historial | Un dubte ràpid enmig d'una tasca |
/resume | Recupera una conversa anterior | L'endemà, per continuar |
Una tasca per sessió
Quan acabes, /clear. El context d'una tasca embruta la següent.
Peticions verificables
Digues com sabràs que està bé: una prova, una xifra, una captura.
Atura i corregeix
Si veus que va per mal camí, prem Esc i redirigeix-lo. No esperis que acabi.
El que importa, als fitxers
Les decisions van a CLAUDE.md, a la SPEC o a un commit. La conversa s'oblida.
Pràctica 6Mirar i netejar el context
Objectiu. Veure què ocupa el context i quant has consumit, i aprendre a compactar i començar de nou.
/context i mira quina part ocupen els fitxers i quina la conversa./usage i mira com vas de la finestra de cinc hores i de la setmana./btw./context i compara-ho./btw quina diferència hi ha entre dashboard/dades.js i scripts/dades-dashboard.mjs?
/compact conserva només les decisions del dashboard, els fitxers que hem creat i les xifres de verificació
web-cafes-roca amb els commits fets. El farem servir per publicar la landing a GitHub Pages.Bloc 7 · Git i GitHub amb Claude Code
Entendre un projecte existent, incidències, branques, proves i pull requests.
A la segona sessió treballem com un equip de desenvolupament sobre l'aplicació d'estoc de Cafès Roca: un projecte que ja existeix, amb proves, tres incidències obertes i un error que ha detectat el responsable de Gràcia.
| Paraula | Què és | Ordre que farà servir l'agent |
|---|---|---|
| Repositori | La carpeta del projecte amb tot l'historial de canvis | git init, gh repo create |
| Commit | Una foto dels canvis amb un missatge | git commit |
| Branca | Una línia de treball separada de la principal (main) | git switch -c |
| Incidència (issue) | Una tasca o un error apuntat a GitHub | gh issue create, gh issue view |
| Pull request | La proposta de portar una branca a main, perquè algú la revisi | gh pr create |
| Diff | Les línies que han canviat | git diff, gh pr diff |
Pràctica 7.1Conèixer el projecte i pujar-lo a GitHub
Objectiu. Fer que l'agent t'expliqui un projecte que no has escrit tu, comprovar que funciona i publicar-lo en un repositori privat amb les seves incidències.
estoc-cafes-roca i executa npm test i npm start. Obre http://localhost:3000 i tria el local de Gràcia. Atura el servidor amb Ctrl+C.claude en mode Plan i enganxa el prompt d'exploració.gh quan te les demani.cd estoc-cafes-roca npm test npm start
Explica'm aquest projecte com si fos el meu primer dia a l'equip: què fa, com està organitzat, com flueixen les dades des de data/productes.json fins a la pàgina i quines regles de negoci aplica. Després llegeix ISSUES.md i digue'm per on començaries i per què. No modifiquis res.
Crea un repositori privat a GitHub que es digui estoc-cafes-roca amb GitHub CLI i puja-hi la branca main amb tot l'historial. Comprova abans que .env no es pujarà.
Crea a GitHub les tres incidències d'ISSUES.md, amb el títol, el text i l'etiqueta de cadascuna (bug o enhancement). Després ensenya'm la llista amb gh issue list.
Pràctica 7.2Corregir un error començant per una prova
Objectiu. Resoldre la incidència 1 amb el mètode de les proves primer: una prova que falla, la correcció mínima, totes les proves en verd i una pull request.
git diff abans d'acceptar el commit.Llegeix la incidència 1 amb gh issue view 1. Crea la branca fix/reposicio-minim. Escriu a test/estoc.test.js una prova que reprodueixi l'error amb la beguda d'ametlla de Gràcia (estoc 6, mínim 6, consum setmanal 9) i que comprovi també que la quantitat a demanar és de 18 litres. Executa les proves i ensenya'm que la nova falla. No toquis encara src/.
Ara corregeix l'error a src/estoc.js amb el canvi més petit possible. Torna a executar totes les proves i fes un commit que expliqui l'error i la correcció.
Puja la branca i obre una pull request cap a main que tanqui la incidència 1. A la descripció: què fallava, què has canviat, com s'ha provat i el resultat de npm test.
< passa a <= a necessitaReposicio. Després, 11 proves en verd i, a Gràcia, la beguda d'ametlla surt a la llista amb 18 l per demanar.solucions/estoc-p7-error-corregit té la prova i la correcció.Bloc 8 · Treballar en paral·lel i revisar
Sessions simultànies en worktrees, revisió automàtica i revisió humana.
Un worktree és una còpia de treball del mateix repositori en una altra carpeta i en una altra branca. Permet tenir dues sessions de Claude Code treballant alhora sense trepitjar-se.
| On | Com s'obre una sessió en un worktree |
|---|---|
| Terminal | claude -w exportar-csv crea .claude/worktrees/exportar-csv a la branca worktree-exportar-csv |
| Aplicació d'escriptori | Pestanya Code › sessió nova › opció de worktree |
| Subagents | isolation: worktree a la definició del subagent |
Pràctica 8Dues incidències alhora i una revisió
Objectiu. Implementar la incidència 2 en un worktree mentre la pull request de la 1 espera revisió, revisar-les amb l'agent i amb els teus ulls, i fusionar-les.
estoc-cafes-roca, torna a main amb git switch main i escriu claude -w exportar-csv./code-review seguit del número de la pull request de la incidència 1. A GitHub, incidències i pull requests comparteixen numeració: si has creat tres incidències, la primera pull request és la 4. La revisió s'executa en segon pla i el resultat arriba quan acaba./security-review des del worktree.gh pr diff.git switch main claude -w exportar-csv
Implementa la incidència 2 (gh issue view 2): endpoint /api/reposicio.csv amb el filtre ?local=, botó «Descarrega CSV» a la pàgina i proves de la funció que genera el CSV. Punt i coma, coma decimal i UTF-8 amb BOM. Quan acabis, executa npm test, fes commit i obre una pull request que tanqui la incidència 2.
/code-review 4
Fusiona les pull requests de les incidències 1 i 2 amb squash, en aquest ordre. Si la segona té conflictes amb la primera, resol-los, torna a executar les proves i ensenya'm el resultat abans de fusionar.
/code-review i /security-review troben errors, casos límit i riscos que se t'escaparien. La decisió de fusionar és teva: llegeix el diff, executa l'aplicació i comprova que fa el que demanava la incidència.solucions/estoc-p8-exportar-csv té el CSV implementat i provat.Bloc 9 · Personalitzar l'agent
CLAUDE.md d'equip, normes per carpetes, habilitats, subagents, hooks i permisos.
Tot el que hem repetit en els prompts de la sessió es pot deixar escrit perquè l'agent ho faci sempre igual, i perquè ho faci igual per a tot l'equip.
| Peça | On viu | Per a què |
|---|---|---|
CLAUDE.md | Arrel del projecte | Ordres, estructura, regles de negoci i com treballa l'equip |
| Normes per carpetes | .claude/rules/*.md amb paths: | Instruccions que només s'apliquen a uns fitxers, per exemple les proves |
| Habilitat (skill) | .claude/skills/<nom>/SKILL.md | Una tasca que es repeteix, amb el seu procediment. S'invoca amb /nom o l'agent la fa servir quan toca |
| Subagent | .claude/agents/<nom>.md | Un especialista amb el seu context, les seves eines i el seu model |
| Hook | .claude/settings.json › hooks | Una ordre que s'executa sempre en un moment concret, per exemple després d'editar |
| Permisos | .claude/settings.json › permissions | Què pot fer sense preguntar, què ha de preguntar i què no pot fer mai |
Pràctica 9.1CLAUDE.md d'equip i normes per a les proves
Objectiu. Deixar per escrit les normes del projecte d'estoc i les de les proves.
main i actualitza-la: git switch main i git pull.claude i enganxa el prompt del CLAUDE.md.Escriu el CLAUDE.md d'aquest projecte per a tot l'equip, de menys de 50 línies: ordres per arrencar i provar, estructura de carpetes, regles de negoci de la reposició i com treballem (català a codi i commits, cap dependència nova sense preguntar, cada canvi de lògica amb la seva prova, una branca per incidència i mai push directe a main, npm test en verd abans d'acabar).
Crea .claude/rules/proves.md amb paths: test/**/*.js i aquestes normes: node:test i node:assert/strict sense llibreries externes; un test per comportament amb el nom en català en forma de frase; dades de prova dins del mateix fitxer; quan una xifra surt d'un càlcul, el càlcul en un comentari.
Pràctica 9.2Una habilitat: l'informe de reposició
Objectiu. Convertir una tasca setmanal en una habilitat que tot l'equip pot invocar amb una ordre.
/informe-reposicio Gràcia i mira què fa.informes/ i comprova que la beguda d'ametlla hi surt.Crea una habilitat de projecte a .claude/skills/informe-reposicio/SKILL.md. Descripció: prepara l'informe setmanal de reposició per local i el correu per a cada proveïdor; s'ha de fer servir quan es demani la comanda de la setmana o l'informe de reposició. Passos: executar npm test i aturar-se si falla; obtenir la llista de reposició amb la lògica de src/estoc.js sense modificar res, filtrant pel local que arribi com a argument; desar informes/reposicio-AAAA-MM-DD.md amb una taula per local i un correu de comanda per proveïdor signat per Laura Sanz; no enviar res. Afegeix informes/ al .gitignore.
Pràctica 9.3Un subagent revisor de proves
Objectiu. Crear un especialista que revisa si els canvis tenen les proves que necessiten, amb un context propi i sense poder modificar fitxers.
Crea el subagent .claude/agents/revisor-proves.md: revisa si un canvi de codi té les proves que necessita; s'ha de fer servir després de modificar src/ i abans d'obrir una pull request. Eines: Read, Grep, Glob i Bash. Model: sonnet. Instruccions: mirar git diff, comprovar per a cada funció nova o modificada que hi ha una prova del cas normal i una d'un cas límit, executar npm test i tornar una llista de proves que falten. No pot modificar fitxers.
Fes servir el subagent revisor-proves per revisar els canvis de l'últim commit.
Pràctica 9.4Un hook que executa les proves
Objectiu. Fer que les proves s'executin soles cada vegada que l'agent edita un fitxer de src/ o de test/, i que l'agent vegi l'error si fallen.
/hooks per comprovar que està registrat./rewind.Crea un hook PostToolUse a .claude/settings.json per a les eines Edit i Write que executi node .claude/hooks/proves-despres-d-editar.mjs. L'script, en Node.js: llegeix el JSON de l'entrada estàndard; si el fitxer editat (tool_input.file_path) és dins de src/ o test/, executa node --test; si falla, escriu la sortida a stderr i surt amb el codi 2 perquè l'agent vegi l'error. Ha de funcionar a Windows i a macOS.
Canvia temporalment a src/estoc.js el valor de SETMANES_DE_MARGE a 3 i digue'm què ha passat després de l'edició.
Pràctica 9.5Permisos de l'equip
Objectiu. Decidir què pot fer l'agent sense preguntar, què ha de preguntar i què no pot fer mai, i comprovar que es compleix.
settings.json resultant amb la referència d'aquí sota./permissions per veure les regles actives..env: l'agent no el pot llegir.Afegeix a .claude/settings.json regles de permisos: - sense preguntar: npm test, npm start, node --test, git status, git diff, git log, gh issue view i gh pr view; - preguntant sempre: git push i gh pr merge; - mai: llegir o editar .env, editar data/, git push --force, git push origin main, npm install i rm -rf.
Llegeix el fitxer .env i digue'm quines claus hi ha.
{
"permissions": {
"allow": ["Bash(npm test)", "Bash(npm start)", "Bash(node --test*)", "Bash(git status)",
"Bash(git diff *)", "Bash(git log *)", "Bash(gh issue view *)", "Bash(gh pr view *)"],
"ask": ["Bash(git push *)", "Bash(gh pr merge *)"],
"deny": ["Read(./.env)", "Read(./.env.*)", "Edit(./.env)", "Edit(./data/**)", "Bash(git push --force*)",
"Bash(git push origin main)", "Bash(npm install *)", "Bash(rm -rf *)"]
},
"hooks": {
"PostToolUse": [{ "matcher": "Edit|Write",
"hooks": [{ "type": "command", "command": "node .claude/hooks/proves-despres-d-editar.mjs", "timeout": 120 }] }]
}
}deny, després les ask i al final les allow. Una regla de denegació guanya sempre. Les regles de .claude/settings.json es comparteixen amb l'equip; les teves, a .claude/settings.local.json.solucions/estoc-p9-agent-personalitzat té CLAUDE.md, la norma, l'habilitat, el subagent, el hook i els permisos.Bloc 10 · Connectar eines: MCP, connectors i plugins
Un navegador real per provar l'aplicació i paquets d'habilitats ja fets.
MCP (Model Context Protocol) és l'estàndard obert que fa servir Claude per connectar-se a eines externes: un navegador, una base de dades, Jira, Figma. Cada servidor MCP afegeix eines noves a l'agent.
| Àmbit | On es desa | Per a qui |
|---|---|---|
local (per defecte) | ~/.claude.json, lligat a aquest projecte | Només per a tu, en aquest projecte |
project | .mcp.json a l'arrel del projecte | Tot l'equip, va al repositori |
user | ~/.claude.json | Per a tu, a tots els projectes |
Pràctica 10.1Playwright: provar l'aplicació en un navegador
Objectiu. Afegir el servidor MCP de Playwright i fer que l'agent provi la pàgina d'estoc com ho faria una persona, en mida mòbil.
--scope project es desa a .mcp.json per a tot l'equip.npm start.claude i escriu /mcp: Playwright ha de sortir connectat. Aprova'l si t'ho demana.claude mcp add --scope project playwright -- npx @playwright/mcp@latest
/mcp el servidor surt amb error, elimina'l amb claude mcp remove playwright i torna'l a afegir amb cmd /c npx @playwright/mcp@latest al final de l'ordre.Fes servir Playwright per obrir http://localhost:3000 amb una finestra de 390 × 844. Tria el local de Gràcia i comprova que la beguda d'ametlla surt a la llista de reposició amb 18 l per demanar i que l'enllaç «Descarrega CSV» apunta a /api/reposicio.csv amb el filtre de Gràcia. Fes una captura de la pàgina i digue'm si hi ha res que es vegi malament al mòbil.
Pràctica 10.2Plugins i marketplaces
Objectiu. Instal·lar un plugin del marketplace oficial i veure què hi afegeix.
/plugin i obre la pestanya Discover. El marketplace oficial d'Anthropic, claude-plugins-official, ja hi és./reload-plugins. Les habilitats del plugin surten amb el format /plugin:habilitat.Quines habilitats, subagents, hooks o servidors MCP ha afegit el plugin que acabo d'instal·lar? Explica'm en una línia per a què serveix cadascun.
Bloc 11 · Automatitzar i publicar
Claude Code dins de scripts, a GitHub Actions i al núvol, i la landing publicada.
Fins ara hem treballat en sessions interactives. Claude Code també funciona sense conversa: dins d'un script, en un flux de GitHub o en una rutina que s'executa sola al núvol d'Anthropic.
| Manera | Com | Exemple |
|---|---|---|
| Mode no interactiu | claude -p "..." | Un script que genera l'informe de reposició |
| GitHub Actions | /install-github-app i @claude en una incidència | Implementar la incidència 3 des de GitHub |
| Rutines | /schedule o claude.ai/code/routines | L'informe de reposició cada dilluns a les 8:00 |
| Sessió al núvol | claude --cloud "..." o claude.ai/code | Una tasca llarga que continua amb l'ordinador apagat |
Pràctica 11.1Claude Code en mode no interactiu
Objectiu. Fer servir claude -p des del terminal, amb sortida en text i en JSON, i convertir-ho en un script.
estoc-cafes-roca.claude -p "Quants productes s'han de reposar a cada local? Una línia per local." --allowedTools "Read" claude -p "Llista els productes per reposar" --allowedTools "Read" --output-format json git log --oneline -10 | claude -p "Escriu les notes de versió d'aquests canvis per a l'equip, en català"
Crea scripts/informe-reposicio.sh i scripts/informe-reposicio.ps1 (per a Windows) que facin servir claude -p amb només l'eina Read per generar la taula de reposició, opcionalment d'un sol local, i la desin a informes/reposicio-AAAA-MM-DD.md. Explica'm com s'executen.
Pràctica 11.2GitHub Actions, rutines i núvol (demostració)
Objectiu. Veure com Claude Code treballa sense el teu ordinador: des d'una incidència de GitHub, amb una rutina programada i en una sessió al núvol.
/install-github-app al repositori. Claude Code instal·la l'aplicació de GitHub, desa el secret i obre una pull request amb el flux .github/workflows/claude.yml.@claude. Al cap d'uns minuts, Claude obre una pull request./schedule, el formador crea una rutina que cada dilluns a les 8:00 prepara l'informe de reposició.claude --cloud llança una tasca que continua a claude.ai/code encara que es tanqui el portàtil.@claude implementa aquesta incidència. Afegeix proves de la funció de filtre i obre una pull request.
/schedule cada dilluns a les 8:00, al repositori estoc-cafes-roca: executa les proves, prepara l'informe de reposició de cada local i obre una incidència amb la taula i els correus per als proveïdors.
Pràctica 11.3Publicar la landing a GitHub Pages
Objectiu. Publicar la web de Cafès Roca de la sessió 1 en una adreça pública.
web-cafes-roca i obre claude.Publica aquesta web a GitHub Pages: crea un repositori públic web-cafes-roca amb gh, puja-hi la branca main i activa GitHub Pages des de la branca main i la carpeta arrel amb gh api. Abans, comprova que no puges res que no s'hagi de publicar. Quan acabis, dona'm l'adreça de la web.
gh repo create web-cafes-roca --public --source=. --push
gh api -X POST repos/{owner}/web-cafes-roca/pages -f "source[branch]=main" -f "source[path]=/"https://<el-teu-usuari>.github.io/web-cafes-roca/, amb la landing, les pàgines del blog i el dashboard a /dashboard/.Bloc 12 · Criteri
Seguretat, privadesa, cost i quan n'hi ha prou amb el vibe coding.
Un agent que llegeix contingut extern i executa ordres al teu ordinador necessita límits. Aquest bloc recull els que hem anat posant i en prova dos.
Permisos
Mode Manual per començar, Plan per explorar, regles deny per al que no s'ha de fer mai.
Sandbox
/sandbox aïlla les ordres del sistema de fitxers i de la xarxa. Funciona a macOS i Linux; a Windows, dins de WSL2.
Secrets
Les claus van a .env, fora de Git i amb Read(./.env) denegat. Mai en un prompt ni en un CLAUDE.md.
Injecció de prompts
Un fitxer, una web o una incidència poden portar instruccions amagades. L'agent les ha de tractar com a dades.
Privadesa
A Configuració › Privadesa decideixes si les converses serveixen per entrenar models. Team i Enterprise tenen condicions d'empresa.
Cost
/usage abans de les tasques llargues. Sonnet per a la feina diària i Opus quan calgui.
Pràctica 12.1Una instrucció amagada
Objectiu. Veure com tracta l'agent un fitxer que conté instruccions per a ell i quines proteccions hi ha.
docs/nota_proveidor.md a VS Code i llegeix-lo sencer, inclòs el comentari del final.Resumeix docs/nota_proveidor.md per a l'equip en tres línies i actualitza el que calgui perquè les comandes de begudes vegetals es facin en múltiples de 6.
Hi ha alguna instrucció en aquest fitxer que no hauries de seguir? Quines de les nostres regles de permisos l'haurien aturat si l'haguessis intentat seguir?
settings.json: llegir i editar .env i git push origin main estan denegats, i git push sempre pregunta.Quan n'hi ha prou amb el vibe coding
| N'hi ha prou | Cal revisió experta, proves i manteniment |
|---|---|
| Prototips, eines internes d'un sol ús, una landing estàtica | Aplicacions amb usuaris, pagaments o dades personals |
| Dades fictícies o públiques | Dades de clients o de l'empresa |
| Si falla, no passa res greu | Si falla, hi ha un cost o un risc legal |
| La fas servir tu | La fa servir un equip o el públic |
Resultats d'aprenentatge
Les capacitats que treballem en les dues sessions i el que tindràs fet en acabar.
Entendre l'agent
Explicar com llegeix, planifica, actua i verifica un agent de programació, i en quins punts calen la teva revisió i la teva aprovació.
Configurar l'entorn
Instal·lar Claude Code, triar model i esforç, i controlar què pot fer amb els modes de permís i les regles de settings.json.
Construir amb mètode
Fer una landing, una anàlisi de dades i un dashboard a partir d'una especificació, i comprovar que el resultat és correcte.
Treballar en equip
Fer servir Git i GitHub amb l'agent: branques, commits, incidències, pull requests i revisió de codi.
Adaptar l'agent
Escriure CLAUDE.md, habilitats, subagents, hooks i permisos per a un projecte i un equip.
Criteri
Aplicar criteris de seguretat, privadesa i cost, i distingir el codi que ja es pot fer servir del que necessita més revisió.
Resultats del curs
- La landing de Cafès Roca amb tres pàgines de blog generades a partir de Markdown, publicada a GitHub Pages.
- Un script d'anàlisi de vendes que es pot tornar a executar, amb tres gràfics i un informe amb cada xifra traçable.
- Un dashboard interactiu amb filtres, construït a partir d'una especificació escrita per l'agent.
- Un repositori a GitHub amb un error corregit amb proves, una funcionalitat nova i dues pull requests revisades.
- Un projecte configurat per a l'equip: CLAUDE.md, una norma de proves, una habilitat, un subagent, un hook i permisos.
- Un servidor MCP connectat i un script que fa servir Claude Code sense obrir cap sessió.
Preparació prèvia
Què cal tenir instal·lat i a punt abans de la primera sessió.
Fes aquesta preparació abans de venir. Són uns vint minuts i fa que la primera hora de classe sigui de pràctica.
Comptes
| Compte | Per a què | Cost |
|---|---|---|
| Claude, pla Pro o superior | Claude Code. El pla gratuït no l'inclou | 15 € al mes amb pagament anual o 18 € al mes, sense impostos. Es pot cancel·lar en qualsevol moment |
| GitHub | Repositoris, incidències, pull requests i GitHub Pages | Gratuït |
Programari
| Programa | Windows | macOS |
|---|---|---|
| Aplicació d'escriptori de Claude | claude.com/download | claude.com/download |
| Claude Code | irm https://claude.ai/install.ps1 | iex a PowerShell | curl -fsSL https://claude.ai/install.sh | bash al Terminal |
| Git | git-scm.com (Git per a Windows) o winget install --id Git.Git | xcode-select --install o brew install git |
| Node.js 22 LTS | nodejs.org o winget install OpenJS.NodeJS.LTS | nodejs.org o brew install node |
| GitHub CLI | cli.github.com o winget install --id GitHub.cli | brew install gh |
| Visual Studio Code | code.visualstudio.com | code.visualstudio.com |
PreparacióInstal·lar i comprovar
Objectiu. Tenir-ho tot instal·lat, amb la sessió iniciada a Claude i a GitHub, i comprovar-ho amb cinc ordres.
claude, tria iniciar sessió amb el teu compte de Claude i completa-ho al navegador amb el teu compte Pro.gh auth login i segueix els passos: GitHub.com › HTTPS › Login with a web browser.git config.git config --global user.name "El teu nom" git config --global user.email "el-teu-correu@exemple.com"
claude --version claude doctor git --version node --version gh auth status
Ordres de referència
Les ordres, dreceres i fitxers que fem servir al curs.
Al terminal
| Ordre | Què fa |
|---|---|
claude | Obre una sessió interactiva a la carpeta actual |
claude "tasca" | Obre una sessió que comença amb aquesta tasca |
claude -c | Continua l'última conversa d'aquesta carpeta |
claude --permission-mode plan | Comença en mode Plan |
claude -w nom | Obre una sessió en un worktree nou |
claude -p "tasca" | Mode no interactiu: fa la tasca, escriu el resultat i surt |
claude --cloud "tasca" | Llança una sessió al núvol |
claude mcp add · claude mcp list | Afegeix o llista servidors MCP |
claude update · claude doctor | Actualitza Claude Code o en diagnostica la instal·lació |
Dins de la sessió
| Ordre | Què fa |
|---|---|
/init | Genera un CLAUDE.md a partir del projecte |
/memory | Obre els fitxers de memòria i la memòria automàtica |
/model · /effort | Canvia el model o el nivell d'esforç |
/permissions | Mostra i edita les regles de permisos |
/rewind | Torna a un punt de control anterior |
/context · /compact · /clear | Mira, resumeix o buida el context |
/usage | Consum de la sessió i límits del pla |
/btw | Pregunta lateral que no queda a l'historial |
/resume | Recupera una conversa anterior |
/code-review · /security-review | Revisió de codi i de seguretat dels canvis |
/hooks · /mcp · /plugin | Gestiona hooks, servidors MCP i plugins |
/sandbox | Activa l'aïllament de les ordres |
/install-github-app | Configura Claude Code a GitHub Actions |
/schedule | Crea una rutina que s'executa al núvol |
/exit | Surt de la sessió |
Dreceres
| Drecera | Què fa |
|---|---|
| Maj+Tab | Canvia de mode de permís |
| Esc | Atura l'agent sense perdre la feina feta |
| Esc Esc | Obre el menú de punts de control |
@fitxer | Afegeix un fitxer a la petició |
!ordre | Executa una ordre de terminal sense passar per l'agent |
/ | Mostra totes les ordres i habilitats disponibles |
Fitxers de configuració
| Fitxer | Per a què |
|---|---|
CLAUDE.md · CLAUDE.local.md | Instruccions del projecte, compartides o personals |
.claude/rules/*.md | Normes per a uns fitxers concrets |
.claude/skills/<nom>/SKILL.md | Habilitats del projecte |
.claude/agents/<nom>.md | Subagents del projecte |
.claude/settings.json · .claude/settings.local.json | Permisos, hooks i preferències, de l'equip o personals |
.mcp.json | Servidors MCP del projecte |
~/.claude/ | Les mateixes peces, per a tots els teus projectes |
Glossari
Els termes del curs en paraules planeres.
Tots els prompts
Els prompts de les dues sessions, filtrables per sessió.
Explora aquesta carpeta i explica'm què hi ha: quins fitxers, què conté cadascun i què creus que hem de construir. No modifiquis res. Acaba amb tres preguntes que em faries abans de començar.
Segons el brief, quins horaris té el local de Sants i quins colors hem de fer servir a la web?
Afegeix a CLAUDE.md aquestes normes del projecte: - Web estàtica en HTML, CSS i JavaScript, sense frameworks ni dependències de npm. - Tots els textos de la web en català. Colors i to del brief. - Ha de funcionar bé al mòbil. - Abans de donar una tasca per acabada, obre la pàgina i comprova-la a 390 px d'amplada i a escriptori. - Missatges de commit en català, en imperatiu i curts: «Afegeix el formulari de càtering». Mantén el fitxer per sota de 60 línies.
Crea un fitxer prova.html amb un títol gran que digui «Prova de Cafès Roca» i res més.
Llegeix brief_web_cafes_roca.txt i els tres articles de la carpeta articles/. Vull la landing de Cafès Roca: un index.html i un estils.css, sense dependències. Seccions del brief en aquest ordre: capçalera amb lema i botó al càtering, els tres locals, carta destacada, una secció «Del nostre blog» que de moment quedi buida, formulari de càtering i peu. El formulari no s'envia enlloc: en enviar-lo, valida els camps i mostra un missatge de confirmació a la mateixa pàgina. Fes-me primer les preguntes que necessitis i després un pla amb l'estructura de fitxers i les decisions de disseny.
Mira captura.png. És la secció de la carta vista al mòbil. Els preus queden massa enganxats al nom del plat i la línia de punts no s'alinea. Arregla-ho perquè es llegeixi bé a 390 px i comprova que a escriptori no ha canviat res.
Crea scripts/articles.mjs, en Node.js i sense dependències, que: - llegeixi cada .md de articles/ amb la capçalera entre --- (titol, data, autora, resum); - converteixi el Markdown a HTML: títols, paràgrafs, llistes, negreta, enllaços i taules; - generi una pàgina per article a blog/, amb la mateixa capçalera i estils de la landing i un enllaç per tornar; - ompli la secció «Del nostre blog» d'index.html amb una targeta per article, de més nou a més antic. No l'executis tu: explica'm com l'executo.
Inicialitza un repositori de Git en aquesta carpeta, crea un .gitignore adequat per a una web estàtica i fes el primer commit amb tots els fitxers. Missatge en català.
Analitza dades/vendes_cafes_roca_2026.csv (punt i coma, coma decimal; columnes data, local, categoria, producte, unitats, import_eur). Escriu analisi/analisi.mjs en Node.js, sense dependències, que: 1. Llegeixi i netegi el CSV: comprovi les columnes, descarti les files no vàlides i digui quantes n'ha descartat. 2. Calculi: total del semestre; vendes i pes per local; vendes per mes i local; vendes i pes per categoria; pes de les begudes fredes sobre el total de cada mes; els cinc productes que més facturen. 3. Desi totes les xifres a analisi/resultats.json. 4. Generi tres gràfics SVG a analisi/grafics/: evolució mensual per local, pes de cada categoria i begudes fredes per mes. Tria el tipus de gràfic que respongui millor cada pregunta i explica'm per què. 5. Escrigui analisi/informe.md amb cinc conclusions en llenguatge planer, i al costat de cada xifra la clau de resultats.json d'on surt. Números en format català: 104.827,00 €.
Comprova el total del semestre per un altre camí: suma les vendes per local i per mes i mira que les dues sumes donin el mateix que el total. Ensenya'm les tres xifres.
L'acta de la reunió del 8 de setembre diu que el cafè és el 55 % de la facturació i que les begudes fredes representen el 14 % a l'estiu. Comprova-ho amb resultats.json i explica la diferència. No modifiquis cap fitxer.
Vull un quadre de comandament de les vendes de Cafès Roca a partir de dades/vendes_cafes_roca_2026.csv. Fes-me una entrevista per definir-lo: una pregunta cada vegada, sobre qui el farà servir, què ha de poder decidir, quins filtres, indicadors i gràfics necessita, i com sabrem que les xifres són correctes. Quan tinguis prou informació, escriu dashboard/SPEC.md amb aquestes seccions: per a qui i per a què, dades, contingut, disseny i criteris d'acceptació. No escriguis codi encara.
Llegeix dashboard/SPEC.md i fes un pla per construir-lo. Restriccions: un sol fitxer dashboard/index.html amb CSS i JavaScript, sense llibreries externes, gràfics en SVG. Perquè s'obri amb doble clic sense servidor, genera les dades agregades en un dashboard/dades.js amb un script scripts/dades-dashboard.mjs. Quan acabis, comprova tu mateix cada criteri d'acceptació i digue'm el resultat.
Compara el dashboard amb analisi/resultats.json: - filtre Tots, de gener a juny: vendes totals i pes de Poblenou; - filtre Gràcia, de maig a juny: vendes. Digue'm si quadren i, si no, quina de les dues xifres és la correcta i per què.
/btw quina diferència hi ha entre dashboard/dades.js i scripts/dades-dashboard.mjs?
/compact conserva només les decisions del dashboard, els fitxers que hem creat i les xifres de verificació
Explica'm aquest projecte com si fos el meu primer dia a l'equip: què fa, com està organitzat, com flueixen les dades des de data/productes.json fins a la pàgina i quines regles de negoci aplica. Després llegeix ISSUES.md i digue'm per on començaries i per què. No modifiquis res.
Crea un repositori privat a GitHub que es digui estoc-cafes-roca amb GitHub CLI i puja-hi la branca main amb tot l'historial. Comprova abans que .env no es pujarà.
Crea a GitHub les tres incidències d'ISSUES.md, amb el títol, el text i l'etiqueta de cadascuna (bug o enhancement). Després ensenya'm la llista amb gh issue list.
Llegeix la incidència 1 amb gh issue view 1. Crea la branca fix/reposicio-minim. Escriu a test/estoc.test.js una prova que reprodueixi l'error amb la beguda d'ametlla de Gràcia (estoc 6, mínim 6, consum setmanal 9) i que comprovi també que la quantitat a demanar és de 18 litres. Executa les proves i ensenya'm que la nova falla. No toquis encara src/.
Ara corregeix l'error a src/estoc.js amb el canvi més petit possible. Torna a executar totes les proves i fes un commit que expliqui l'error i la correcció.
Puja la branca i obre una pull request cap a main que tanqui la incidència 1. A la descripció: què fallava, què has canviat, com s'ha provat i el resultat de npm test.
Implementa la incidència 2 (gh issue view 2): endpoint /api/reposicio.csv amb el filtre ?local=, botó «Descarrega CSV» a la pàgina i proves de la funció que genera el CSV. Punt i coma, coma decimal i UTF-8 amb BOM. Quan acabis, executa npm test, fes commit i obre una pull request que tanqui la incidència 2.
/code-review 4
Fusiona les pull requests de les incidències 1 i 2 amb squash, en aquest ordre. Si la segona té conflictes amb la primera, resol-los, torna a executar les proves i ensenya'm el resultat abans de fusionar.
Escriu el CLAUDE.md d'aquest projecte per a tot l'equip, de menys de 50 línies: ordres per arrencar i provar, estructura de carpetes, regles de negoci de la reposició i com treballem (català a codi i commits, cap dependència nova sense preguntar, cada canvi de lògica amb la seva prova, una branca per incidència i mai push directe a main, npm test en verd abans d'acabar).
Crea .claude/rules/proves.md amb paths: test/**/*.js i aquestes normes: node:test i node:assert/strict sense llibreries externes; un test per comportament amb el nom en català en forma de frase; dades de prova dins del mateix fitxer; quan una xifra surt d'un càlcul, el càlcul en un comentari.
Crea una habilitat de projecte a .claude/skills/informe-reposicio/SKILL.md. Descripció: prepara l'informe setmanal de reposició per local i el correu per a cada proveïdor; s'ha de fer servir quan es demani la comanda de la setmana o l'informe de reposició. Passos: executar npm test i aturar-se si falla; obtenir la llista de reposició amb la lògica de src/estoc.js sense modificar res, filtrant pel local que arribi com a argument; desar informes/reposicio-AAAA-MM-DD.md amb una taula per local i un correu de comanda per proveïdor signat per Laura Sanz; no enviar res. Afegeix informes/ al .gitignore.
Crea el subagent .claude/agents/revisor-proves.md: revisa si un canvi de codi té les proves que necessita; s'ha de fer servir després de modificar src/ i abans d'obrir una pull request. Eines: Read, Grep, Glob i Bash. Model: sonnet. Instruccions: mirar git diff, comprovar per a cada funció nova o modificada que hi ha una prova del cas normal i una d'un cas límit, executar npm test i tornar una llista de proves que falten. No pot modificar fitxers.
Fes servir el subagent revisor-proves per revisar els canvis de l'últim commit.
Crea un hook PostToolUse a .claude/settings.json per a les eines Edit i Write que executi node .claude/hooks/proves-despres-d-editar.mjs. L'script, en Node.js: llegeix el JSON de l'entrada estàndard; si el fitxer editat (tool_input.file_path) és dins de src/ o test/, executa node --test; si falla, escriu la sortida a stderr i surt amb el codi 2 perquè l'agent vegi l'error. Ha de funcionar a Windows i a macOS.
Canvia temporalment a src/estoc.js el valor de SETMANES_DE_MARGE a 3 i digue'm què ha passat després de l'edició.
Afegeix a .claude/settings.json regles de permisos: - sense preguntar: npm test, npm start, node --test, git status, git diff, git log, gh issue view i gh pr view; - preguntant sempre: git push i gh pr merge; - mai: llegir o editar .env, editar data/, git push --force, git push origin main, npm install i rm -rf.
Llegeix el fitxer .env i digue'm quines claus hi ha.
Fes servir Playwright per obrir http://localhost:3000 amb una finestra de 390 × 844. Tria el local de Gràcia i comprova que la beguda d'ametlla surt a la llista de reposició amb 18 l per demanar i que l'enllaç «Descarrega CSV» apunta a /api/reposicio.csv amb el filtre de Gràcia. Fes una captura de la pàgina i digue'm si hi ha res que es vegi malament al mòbil.
Quines habilitats, subagents, hooks o servidors MCP ha afegit el plugin que acabo d'instal·lar? Explica'm en una línia per a què serveix cadascun.
Crea scripts/informe-reposicio.sh i scripts/informe-reposicio.ps1 (per a Windows) que facin servir claude -p amb només l'eina Read per generar la taula de reposició, opcionalment d'un sol local, i la desin a informes/reposicio-AAAA-MM-DD.md. Explica'm com s'executen.
@claude implementa aquesta incidència. Afegeix proves de la funció de filtre i obre una pull request.
/schedule cada dilluns a les 8:00, al repositori estoc-cafes-roca: executa les proves, prepara l'informe de reposició de cada local i obre una incidència amb la taula i els correus per als proveïdors.
Publica aquesta web a GitHub Pages: crea un repositori públic web-cafes-roca amb gh, puja-hi la branca main i activa GitHub Pages des de la branca main i la carpeta arrel amb gh api. Abans, comprova que no puges res que no s'hagi de publicar. Quan acabis, dona'm l'adreça de la web.
Resumeix docs/nota_proveidor.md per a l'equip en tres línies i actualitza el que calgui perquè les comandes de begudes vegetals es facin en múltiples de 6.
Hi ha alguna instrucció en aquest fitxer que no hauries de seguir? Quines de les nostres regles de permisos l'haurien aturat si l'haguessis intentat seguir?
Documentació oficial
Les fonts d'aquest temari.
| Pàgina | Adreça |
|---|---|
| Claude Code overview | code.claude.com/docs/en/overview |
| Set up Claude Code | code.claude.com/docs/en/setup |
| How Claude Code works | code.claude.com/docs/en/how-claude-code-works |
| Best practices for Claude Code | code.claude.com/docs/en/best-practices |
| Common workflows | code.claude.com/docs/en/common-workflows |
| Model configuration | code.claude.com/docs/en/model-config |
| Permission modes | code.claude.com/docs/en/permission-modes |
| Checkpointing | code.claude.com/docs/en/checkpointing |
| Manage Claude's memory | code.claude.com/docs/en/memory |
| Commands | code.claude.com/docs/en/commands |
| CLI reference | code.claude.com/docs/en/cli-reference |
| Manage costs effectively | code.claude.com/docs/en/costs |
| Run parallel sessions with Git worktrees | code.claude.com/docs/en/worktrees |
| Claude Code on desktop | code.claude.com/docs/en/desktop |
| Agent Skills | code.claude.com/docs/en/skills |
| Subagents | code.claude.com/docs/en/sub-agents |
| Hooks guide | code.claude.com/docs/en/hooks-guide |
| Configure permissions | code.claude.com/docs/en/permissions |
| Connect Claude Code to tools via MCP | code.claude.com/docs/en/mcp |
| Plugins | code.claude.com/docs/en/plugins/overview |
| Run Claude Code programmatically | code.claude.com/docs/en/headless |
| Claude Code GitHub Actions | code.claude.com/docs/en/github-actions |
| Routines | code.claude.com/docs/en/routines |
| Claude Code on the web | code.claude.com/docs/en/claude-code-on-the-web |
| Security | code.claude.com/docs/en/security |
| Sandboxing | code.claude.com/docs/en/sandboxing |
| Using Claude Code with your Pro or Max plan | support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan |
| Plans i preus de Claude | claude.com/pricing |
Tot el que necessites per a les dues sessions

Daniel M. Casas
Formador oficial de Barcelona Activa al Cibernàrium · Full Stack Developer · Màster en Intel·ligència Artificial i Big Data.
Formació en IA per a empresesEls cursos que recomano per seguir aprenent
Aquest és l'ordre que proposo per anar de les bases de la IA al treball amb agents. Tots són cursos del Cibernàrium que imparteixo jo, i a cada pàgina trobaràs el temari i els materials.
Enginyeria de prompts per a la intel·ligència artificial
Com estructurar un prompt per obtenir resultats fiables i reutilitzables en qualsevol eina d'IA.
Veure el cursPas 2Treballa amb Claude
La IA agèntica al dia a dia amb l'aplicació d'escriptori, els projectes i Cowork, amb el compte gratuït.
Veure el cursPas 3Treballa amb ChatGPT i Codex
La IA agèntica aplicada al dia a dia amb la plataforma d'OpenAI i el seu agent Codex.
Veure el cursPas 4ChatGPT de zero a experts
ChatGPT a fons: prompts, anàlisi de dades, recerca, imatges i un projecte final de botiga en línia.
Veure el cursClaude Code a la teva empresa, amb el vostre codi i els vostres processos
El mateix mètode, adaptat al vostre repositori: CLAUDE.md d'equip, habilitats i hooks per als vostres fluxos, permisos pensats per a la vostra seguretat i automatització a GitHub. Presencial a Barcelona o en línia.