Salta al contingut principal
onext technology
IA 8 d'octubre de 2026 - 8 min de lectura

Claude Code per a equips: CLAUDE.md és context, no control. El que s'ha de complir va a settings i hooks

Si una regla té risc, no pot dependre que l'agent se'n recordi. CLAUDE.md orienta; els permisos i els hooks imposen. I el fitxer que imposa es versiona i es revisa com el codi.

Bernat López
Fundador i CEO d'onext
Diagrama de tres capes: un full de text en gris clar que l'agent llegeix, una llista de permisos amb un cadenat i una barrera marina que atura una acció abans d'executar-se, en blau i marí sobre blanc

Quan un equip adopta Claude Code, el primer fitxer que apareix al repositori sol ser un CLAUDE.md. Hi van les convencions de codi, les ordres de test i, a poc a poc, tota la resta: «no toquis les migracions», «no facis push a main», «no llegeixis el .env». Al cap d'unes setmanes, el fitxer té tres-centes línies i l'equip creu que les seves regles ja hi són.

La mateixa documentació de Claude Code diu una altra cosa. El model tracta CLAUDE.md com a context, no com a configuració que s'imposa. Les regles que no admeten excepcions tenen un altre lloc, i no és un detall d'implementació: és la diferència entre demanar-li una cosa a l'agent i que el client no el deixi fer el contrari.

La tesi d'aquesta peça és senzilla d'enunciar i menys senzilla d'aplicar: si una regla té risc, no pot dependre que l'agent se'n recordi. El que orienta va a CLAUDE.md. El que s'ha de complir va als permisos de .claude/settings.json i als hooks, que són deterministes. I aquest fitxer es versiona al repositori i es revisa com el codi.

El que diu la documentació, amb les seves paraules

No cal interpretar gaire. Quatre pàgines de la documentació oficial ho diuen de manera explícita.

  • A la pàgina de memòria: Claude tracta CLAUDE.md i la memòria automàtica «com a context, no com a configuració imposada», i per bloquejar una acció decideixi el que decideixi el model remet a un hook PreToolUse. Més avall: les regles de settings «les aplica el client decideixi el que decideixi Claude»; les instruccions de CLAUDE.md donen forma al seu comportament, «però no són una capa d'imposició».
  • A la guia de hooks: els hooks donen «control determinista», de manera que certes accions passen sempre en lloc de dependre que el model decideixi fer-les.
  • A les bones pràctiques: a diferència de les instruccions de CLAUDE.md, «que són orientatives», els hooks són deterministes. I una advertència que convé llegir dues vegades: un CLAUDE.md inflat fa que Claude ignori les instruccions que de debò importen.
  • A la pàgina de settings: fer commit de .claude/settings.json perquè tothom qui cloni el repositori tingui els mateixos permisos, hooks i plugins.
La diferència CLAUDE.md és una petició que el model llegeix. Un permís o un hook és una condició que el client comprova abans que l'acció passi. La primera es pot perdre entre tres-centes línies; la segona no depèn que ningú la llegeixi.

Quatre llocs per a una regla, amb quatre garanties diferents

Claude Code ofereix diversos llocs on escriure una regla. No són intercanviables: canvien qui l'aplica i qui se la pot saltar.

On Què és Qui l'aplica Per a què serveix
CLAUDE.md (projecte, usuari o organització) Text que el model llegeix en començar cada sessió El model, si la segueix Ordres, convencions, decisions d'arquitectura, el que l'agent no pot deduir del codi
Permisos a .claude/settings.json Regles de quines eines i ordres es permeten, es pregunten o es deneguen El client de Claude Code Què pot fer l'agent en aquest repositori, igual per a tot l'equip
Hooks (al mateix fitxer de settings) Ordres de shell que s'executen en moments fixos, per exemple abans de fer servir una eina El client, sempre que passa l'esdeveniment Bloquejar una acció concreta, formatar després de cada edició, registrar el que passa
Configuració gestionada (managed settings) Settings que desplega l'organització El client, per sobre de la resta de nivells Política de seguretat i compliment que cap repositori no hauria de poder relaxar

Elaboració pròpia d'onext, a partir de les pàgines de memòria, settings i hooks de la documentació de Claude Code (consultades el 8 d'octubre de 2026)

L'exemple que la mateixa guia de hooks fa servir per començar és revelador: un script que s'executa abans de cada edició, comprova la ruta del fitxer contra una llista de patrons protegits (.env, package-lock.json, .git/) i surt amb el codi 2 si coincideix. Amb aquest codi, Claude Code bloqueja l'edició abans que passi i li comunica el motiu al model, perquè canviï d'enfocament. No cal confiar que l'agent recordi la llista: no pot editar aquests fitxers encara que ho intenti.

Què va a cada lloc: la pregunta que ho decideix

La manera pràctica de repartir les regles és fer-se una sola pregunta per a cadascuna: si l'agent no la segueix una vegada, què passa? Si la resposta és «surt un codi una mica pitjor», és context. Si la resposta és «es trenca alguna cosa, es filtra alguna cosa o algú ha de donar explicacions», és una condició.

Regla Si l'agent no la segueix On va
«Fem servir mòduls ES, no CommonJS» Un canvi que es corregeix a la revisió CLAUDE.md
«Executa els tests amb npm test abans de donar res per acabat» Feina sense verificar que arriba a la revisió CLAUDE.md, i un hook d'aturada si l'equip vol que sigui obligatori
«No llegeixis ni editis el .env» Credencials exposades en una sessió o en un canvi Permís denegat i hook PreToolUse
«No facis push a main» Un desplegament que ningú no ha aprovat Permís denegat, a més de la protecció de branca al servidor
«No toquis els fitxers generats» Canvis que es perden a la generació següent Hook PreToolUse sobre aquestes rutes
Una política de seguretat que val per a tota l'empresa Un repositori o una persona la relaxa sense que ningú ho decideixi Configuració gestionada

Elaboració pròpia d'onext. El repartiment és una proposta de criteri, no una norma de la documentació; els exemples de la primera fila i de la tercera provenen de les bones pràctiques i de la guia de hooks

La quarta fila té un parany: un permís al client no substitueix la protecció de branca al servidor. L'agent no és l'únic que pot fer push. Les regles que protegeixen la producció han de viure on viu la producció, i la configuració de l'agent és una capa més, no l'única. És la mateixa lògica que expliquem per als agents amb eines a injecció de prompts i permisos: el que limita el dany és el que l'agent pot fer, no el que se li ha demanat.

El fitxer compartit també es pot trepitjar

Versionar .claude/settings.json té un matís que convé conèixer. La documentació ordena els nivells de configuració, de més a menys precedència, així: configuració gestionada, línia d'ordres, .claude/settings.local.json del projecte, .claude/settings.json compartit i la configuració de l'usuari. Un valor fixat en un nivell superior preval sobre el mateix valor en un d'inferior.

És a dir: cada persona pot ajustar per a si mateixa el que l'equip ha versionat, amb el seu fitxer local, que Claude Code manté fora de git. Per a preferències personals, és el que es vol. Per a una regla de seguretat, no n'hi ha prou.

Risc El que s'ha de complir a tota l'empresa, sense excepcions per persona ni per repositori, va a la configuració gestionada. La documentació ho planteja així: settings per a la imposició tècnica i un CLAUDE.md gestionat per a l'orientació, com ara estàndards de codi o recordatoris de compliment. I hi afegeix que algunes regles del fitxer compartit, com les de permetre, no s'apliquen fins que cada persona confia en la carpeta; les de denegar i preguntar s'apliquen de seguida.

Un CLAUDE.md curt se segueix millor

Treure les regles que imposen té un efecte secundari: el CLAUDE.md s'aprima, i això també és un guany. La documentació proposa menys de 200 línies per fitxer, perquè els fitxers llargs consumeixen més context i redueixen el grau en què se segueixen. La guia de bones pràctiques dona un test per a cada línia: si treure-la no faria que Claude s'equivoqués, sobra. Si Claude continua fent una cosa malgrat una regla en contra, probablement el fitxer és massa llarg i la regla es perd.

El que només s'aplica a una part del codi pot anar en regles per ruta dins de .claude/rules/, que es carreguen quan l'agent treballa amb aquells fitxers. I el que només cal de tant en tant, en una skill, que es carrega quan fa falta. Com es cura aquest text compartit perquè continuï sent útil ho desenvolupem a instruccions compartides i curades, i quan convé convertir un procediment en skill, a la guia pràctica de skills.

La configuració de l'agent és codi

Si els permisos i els hooks decideixen què pot fer l'agent en un repositori, canviar-los és canviar el comportament del sistema. Mereix el mateix tracte que el codi: una pull request, algú que la revisa i un motiu escrit. Un hook nou que bloqueja alguna cosa, o un permís que es relaxa, és exactament el tipus de canvi que ningú no s'hauria de trobar per sorpresa.

És la mateixa idea que defensem per als prompts i les skills a evals a cada pull request: el que canvia el comportament d'un agent passa per la mateixa porta que la resta del codi. I és la mateixa pregunta de fons que a l'especificació és on se signa: on decideix una persona i què queda escrit.

Fora de Claude Code Aquest repartiment no depèn de l'eina. En qualsevol assistent de codi, la pregunta útil és quina part de les regles només se li suggereix al model i quina part comprova alguna cosa que el model no controla. Les regles que importen viuen fora del model.

Si el vostre CLAUDE.md fa mesos que creix, la lectura útil no és «cal escriure'l millor». És una altra: quantes d'aquestes línies són, en realitat, condicions que ningú no comprova. Els canvis de producte que també afecten com es configura Claude Code en un equip els repassem a els sis canvis tècnics del 15 de juny.

Preguntes freqüents

Claude Code obeeix sempre el que diu el CLAUDE.md?

No està garantit. La documentació de Claude Code diu que el model tracta CLAUDE.md com a context, no com a configuració que s'imposa, i que com més concretes i breus són les instruccions, amb més constància les segueix. Per bloquejar una acció decideixi el que decideixi el model, remet a un hook PreToolUse.

Quina diferència hi ha entre CLAUDE.md i .claude/settings.json?

CLAUDE.md és text que el model llegeix en començar cada sessió i que n'orienta el comportament. .claude/settings.json és configuració que aplica el mateix client de Claude Code: permisos, hooks, plugins i variables d'entorn. La documentació ho resumeix així: les regles de settings s'apliquen decideixi el que decideixi Claude; les instruccions de CLAUDE.md donen forma al seu comportament, però no són una capa d'imposició.

Què és un hook a Claude Code?

És una ordre de shell que Claude Code executa en un moment fix del seu cicle, per exemple abans de fer servir una eina (PreToolUse) o després d'editar un fitxer. La documentació el descriu com a control determinista: certes accions passen sempre, en lloc de dependre que el model decideixi fer-les. Un hook PreToolUse que surt amb el codi 2 bloqueja l'acció i retorna el motiu a Claude.

Cal pujar .claude/settings.json al repositori?

Sí, si és la configuració de l'equip. La documentació recomana fer commit de .claude/settings.json perquè tothom qui cloni el repositori tingui els mateixos permisos, hooks i plugins. Les excepcions personals van a .claude/settings.local.json, que queda fora de git.

Quant hauria d'ocupar un CLAUDE.md?

La documentació proposa menys de 200 línies per fitxer: els fitxers llargs consumeixen més context i redueixen el grau en què se segueixen. La guia de bones pràctiques hi afegeix un test per a cada línia: si treure-la no faria que Claude s'equivoqués, sobra. El que només s'aplica a una part del codi pot anar en regles per ruta dins de .claude/rules/.

Com s'imposa una regla a tota l'empresa i no només a un repositori?

Amb la configuració gestionada (managed settings), que desplega l'organització i que és per sobre de la resta en l'ordre de precedència. La documentació distingeix entre settings per a la imposició tècnica i un CLAUDE.md gestionat per a l'orientació del comportament, com ara estàndards de codi o recordatoris de compliment.

Fonts

Bernat López
Escrit per
Bernat López
Fundador i CEO d'onext

Bernat López és fundador i CEO d'onext, boutique d'IA. Acompanya equips de desenvolupament i de producte a treballar amb IA amb mètode —especificació abans de programar, una persona que decideix on hi ha risc i Spec-Driven Development— i aplica a la seva pròpia empresa el que proposa: onext funciona amb el seu propi sistema agèntic.

LinkedIn →

Quines regles del teu equip depenen avui que l'agent se'n recordi?

Al diagnòstic gratuït d'AI-Accelerated Development mirem amb el teu equip on es perd avui la velocitat o el control i què canviaria amb un mètode d'especificació, implementació amb IA i verificació. El que construïm es queda al teu equip.

Veure com treballem

No cal aturar els lliuraments.