Guia del professor — Sessió 4 (Fase 4)

«Crear apps amb IA, des de zero»

Treballa com un equip: branques, pull requests i revisió amb IA. Avui els alumnes deixen de tocar main directament i aprenen el flux professional bàsic de GitHub, tot al navegador i sense instal·lar res. Crear una branca, fer el canvi amb l'agent (reutilitzant el mètode del context de la S3), obrir un Pull Request, entendre el diff, demanar a la IA que el revisi abans de fusionar, i fer el merge a main. És una sessió autònoma/online, com la Sessió 2: la fan sols, al seu ritme, amb l'HTML interactiu. Es publica com sempre (copiar a Apps Script); el desplegament automàtic i el treball en equip de debò són la Fase 5 presencial.


1. Fitxa de la sessió

Camp Detall
Sessió 4 (Fase 4) — Treballa com un equip: branques, pull requests i revisió amb IA
Format Autònoma (online) — cada alumne la fa al seu ritme amb l'HTML interactiu durant els dies abans de la propera presencial (Fase 5)
Durada total ~150 min de feina de l'alumne (orientatiu; al seu ritme, en una o diverses estones)
Objectiu Que deixin de treballar a main i dominin el flux: crear branca → fer el canvi a la branca → obrir un Pull Request → entendre el diff → revisar amb IA → fusionar (merge) → posar al dia la còpia local
Material de l'alumne Portàtil (recomanat; el flux és més còmode al Codespace), compte personal de Google, compte de GitHub i el repositori de la S3 amb la seva app, l'HTML interactiu de la Sessió 4 obert
Material teu Un repo de prova amb el flux ja assajat (branca → PR → revisió → merge), l'HTML interactiu, i el prompt de revisió a punt per repartir

Què s'enduen (resultats d'aprenentatge)

El lliurament per a la propera presencial (Fase 5)

Cada alumne ha de venir amb el seu repositori i almenys un Pull Request fet i fusionat (i, si han pogut, la revisió amb IA aplicada). Així a la Fase 5 ja saben el flux i ens podem centrar a col·laborar en equip de debò i a automatitzar la publicació.

Requisits previs (comprova'ls a l'inici)

  1. El repositori de la Sessió 3 amb la seva app a dins (Codi.gs, Index.html, carpeta context/).
  2. Compte de GitHub propi (creat a la S3) i, idealment, saber obrir el seu Codespace.
  3. Compte PERSONAL de Google i la seva app publicada a Apps Script (per recordar que es publica com sempre).

Si algú no té el repo de la S3 (va faltar, no el va acabar), no t'aturis: que en faci un de ràpid o n'agafi un d'exemple (vegeu Pla B, secció 5). L'ideal és treballar sobre la seva app.


2. Com funciona aquesta sessió (autònoma) i el teu paper

Com la Sessió 2, la 4 és autònoma/online: l'alumne la fa sol, amb l'HTML interactiu que el guia pas a pas. El teu paper és enviar, donar suport i preparar el lliurament:

Prepara't tu primer. Fes el flux sencer una vegada en un repo de prova: branca → canvi amb l'agent → commit/push a la branca → PR → demanar revisió a la IA → merge → esborrar branca → tornar a main i pull. Si el fas en ~20 min, sabràs desencallar qualsevol dubte asíncron. Localitza bé el selector de branca a baix a l'esquerra del Codespace i el botó verd Code / New branch a github.com: són els dos punts on més es perden.

Si algun dia fas aquesta sessió presencial, aquest mateix minutat et serveix de guió: tu fas la demo del flux i ells el repliquen amb la seva app.


3. Minutat orientatiu (~150 min de feina de l'alumne)

Com que la sessió és autònoma, aquest minutat és el temps orientatiu que hi dedicarà l'alumne (al seu ritme, no un rellotge de classe). El cor de tot és obrir el PR, revisar-lo amb IA i fusionar-lo (Blocs D–F): si algú va molt just, que faci com a mínim una branca + un canvi + un PR amb revisió + el merge. El repte «amb un company» és opcional.

# Bloc Min Acumulat
A Per què branques (no trencar main) 15 15
B Crear una branca a partir de main 15 30
C Fer el canvi a la branca amb l'agent (mètode del context) + commit/push a la branca 25 55
D Obrir el Pull Request i entendre el diff 20 75
E Revisar amb IA (errors, seguretat, millores) i decidir 25 100
F Fusionar (merge), esborrar la branca i posar al dia la còpia local 20 120
G (Opcional) Amb un company: convidar un col·laborador i revisar-li un PR 20 140
H Tancament, checklist i lliurament per a la Fase 5 10 150

Total: 150 minuts.


Bloc A — Per què branques (15 min)

El per què és el cor del dia. Si entenen això, la resta és mecànica. No el corris.

Frase per repetir: «main és la versió bona. Les proves, sempre en una branca.»

Bloc B — Crear una branca a partir de main (15 min)

Tot al navegador, sense instal·lar res. Hi ha dues vies equivalents; que triïn la que els vagi millor.

Noms de branca: lletres, números i guions; sense espais ni accents. Que sigui curt i descrigui el canvi.

Bloc C — Fer el canvi a la branca amb l'agent (25 min)

Aquí reutilitzen tot el que ja saben de la S3: el mètode del context i el flux copiar-enganxar. L'única novetat és on desen: a la branca, no a main.

  1. Tria un canvi petit i real per a la seva app: una millora (un camp nou, un filtre, un retoc de disseny) o un arreglo. Millor petit: la gràcia d'avui és el flux, no la mida del canvi.
  2. Demana-ho a l'agent com sempre: pots recordar-li el context («segueix la carpeta context/») i demanar-li el canvi concret. L'agent torna els fitxers afectats (sovint Codi.gs i/o Index.html), sencers.
  3. Aplica el canvi als fitxers del repo (substituir-los) estant a la branca.
  4. Commit + push A LA BRANCA (el punt que més vigilarem): - Al panell de Source Control del Codespace, escriure un missatge de commit curt («Afegeixo el cercador»), fer Commit i després Sync / Push. - Comprova en veu alta (a l'HTML): «Abans de fer commit, mira el nom de la branca: ha de ser la teva, no main.» - Si treballen per github.com: editar el fitxer estant a la branca i fer Commit triant «Commit directly to the nom-branca branch».

Error número 1 del dia: fer el commit a main per error. Recorda'ls abans de cada commit: «mira el nom de la branca a baix a l'esquerra». Si ja ho han fet a main, vegeu la solució a la taula de la secció 4 (no és greu).

Bloc D — Obrir el Pull Request i entendre el diff (20 min)

El Pull Request és «demanar fusionar la meva branca a main». És el moment on el canvi es fa visible i revisable.

  1. Després del push, github.com sol mostrar un botó groc/verd «Compare & pull request» (Comparar i obrir pull request). Si no surt sol, anar a la pestanya Pull requests → New pull request i triar: base = main, compare = la teva branca.
  2. Posar-li un títol clar («Afegeixo cercador a la llista») i, si volen, una frase de descripció. Create pull request.
  3. Entendre el diff (clau): a la pestanya Files changed (Fitxers modificats) es veu què canvia: - Verd (+) = línies afegides. - Vermell (−) = línies tretes. - «El diff és el resum del canvi: d'un cop d'ull veus exactament què tocaràs a main. Sense haver de llegir tot el fitxer.»
  4. Missatge clau: «Obrir un PR no fusiona res encara. És una sala d'espera: primer es revisa, després es fusiona.»

Si el botó «Compare & pull request» no apareix, no és un error: és que el push fa estona o estan mirant una altra pàgina. Recarrega el repo o ves a la pestanya Pull requests i obre'l a mà.

Bloc E — Revisar amb IA (25 min) LA DESTRESA NOVA

El moment més valuós de la sessió. Aprendre a demanar a la IA que revisi un canvi i a llegir-ne la resposta per decidir —no per acceptar a cegues— és una destresa que faran servir tota la vida.

  1. Què revisem: el canvi concret del PR, no l'app «en general». Per això cal donar-li el material: el diff del PR (o els fitxers nous sencers) enganxat al xat de l'agent / Copilot / Gemini.
  2. El prompt de revisió (a l'HTML i a l'Annex B): demanar-li que busqui errors, problemes de seguretat i possibles millores, i que ho expliqui en català i senzill.
  3. Llegir la resposta i DECIDIR: - Si assenyala un error o un risc de seguretat real → tornar a la branca, fer el canvi, commit + push; el PR s'actualitza sol (no cal obrir-ne un de nou). - Si proposa una millora opcional → decidir si val la pena ara o més tard. - Si diu que està bé → endavant cap al merge.
  4. Missatge clau: «La IA et dona pistes; decideixes tu. Revisar serveix per entendre el canvi, no per acceptar-lo a ulls clucs.»

Error típic: que l'agent revisi «en general» (tota l'app) en lloc del canvi concret. La solució és sempre enganxar-li el diff o els fitxers nous. Sense material concret, la revisió és vaga.

Alguns agents poden revisar el PR «sols» si veuen el repo; altres no. Agnòstic d'eina: si el teu no ho fa bé, enganxa el diff a Gemini en una pestanya. El mètode és copiar i enganxar, com sempre.

Bloc F — Fusionar, esborrar la branca i posar al dia la còpia local (20 min)

El tancament del cicle. Quan el canvi està revisat i decidit, es fusiona a main.

  1. Merge: al PR, botó Merge pull request → Confirm merge. «El teu canvi ja és a main: la versió bona ara inclou la teva millora.»
  2. Esborrar la branca: apareix el botó Delete branch (Esborrar branca). Que el premin: «La branca ja ha fet la seva feina; esborrar-la manté el repo net. No s'esborra res del codi —ja és a main.»
  3. Posar al dia la còpia local (el pas que tothom oblida): - Al Codespace, canviar a main (selector de branca a baix a l'esquerra → main) i fer Pull (Sync). - «Així la teva còpia local es posa al dia amb el merge. Si no ho fas, seguiràs editant la branca vella i et faràs un embolic.»
  4. Recordatori de publicació: «Fusionar no publica res sol (encara). Per publicar, copies Codi.gs i Index.html a Apps Script i Implementar → Aplicació web (Versió nova), com sempre.»

Per al pròxim canvi: sempre es comença des de main actualitzada i es crea una branca nova. «Una branca per canvi» (l'hereu de «una app, un full nou»).

Bloc G — (Opcional) Amb un company (20 min)

Només per a qui vagi sobrat i tingui ganes. És un tast del treball en equip; el de debò (repo compartit, main protegida) és la Fase 5.

Si no tenen amb qui aparellar-se, salta aquest bloc: és opcional i no entra al lliurament mínim.

Bloc H — Tancament, checklist i lliurament (10 min)


4. On s'encallaran SEMPRE i com desencallar-los (suport asíncron)

Símptoma Causa Solució ràpida
Han fet commit a main sense voler No miraven el nom de la branca abans del commit No és greu (encara no han fusionat res). El més senzill: crear ara la branca (s'emporta els canvis) i seguir el flux des d'allà; o demanar a l'agent «com moc aquest commit a una branca». Recorda mirar el nom de branca abans de cada commit.
No troben on crear/canviar de branca No localitzen el selector de branca a baix a l'esquerra del Codespace Assenyalar-lo (mostra main). Si no el troben, fer-ho per github.com: selector de branques a dalt → escriure nom → Create branch.
No troben el botó New branch a github.com Estan a la pàgina equivocada Al repo, el selector de branques (on posa main, a dalt a l'esquerra de la llista de fitxers): escriure el nom nou i prémer Create branch.
Després del push, no surt «Compare & pull request» El botó tarda, o miren una altra pàgina Recarregar el repo, o anar a la pestanya Pull requests → New pull request i triar base main + compare la teva branca.
Segueixen editant la branca vella després de fusionar Han oblidat canviar a main + pull Canviar a main (selector de branca) i fer Pull/Sync. Per al pròxim canvi, branca nova des de main.
La IA revisa «en general», no el canvi No li han donat el material concret Enganxar-li el diff del PR o els fitxers nous sencers al xat. Sense això, la revisió és vaga.
L'agent del Codespace no revisa bé el PR L'eina no «veu» el PR sola Enganxar el diff a Gemini en una pestanya amb el prompt de revisió (Annex B). Agnòstic d'eina.
«He fusionat però l'app no ha canviat» Esperen que el merge publiqui Es publica com sempre: copiar el codi a Apps Script i Implementar → Versió nova. El merge a main no publica sol (encara; serà la Fase 5).
El diff els espanta (molt verd/vermell) No saben llegir-lo Verd = afegit, vermell = tret. «No cal entendre cada línia: és el resum del canvi.» Si és molt gros, el canvi era massa gran: millor canvis petits.

Truc de prevenció (digues-ho a l'HTML i al xat): abans de cada commit, mirar el nom de la branca a baix a l'esquerra. Aquest sol hàbit evita la meitat dels embolics del dia.


5. Pla B de contingències

Si algú no té el repo de la S3

Si l'agent no els revisa bé

Si es lien amb les branques (o el Codespace va lent)

Si vas curt de temps (l'alumne)

Prioritat Bloc Decisió
Innegociable Crear branca + fer un canvi a la branca + obrir un PR (Blocs B–D) És el cor del dia i la base del lliurament.
Innegociable Revisar amb IA i fusionar (Blocs E–F) El PR fet i fusionat és el lliurament mínim.
Sacrificable El canvi gran: que sigui petit (un retoc) La gràcia és el flux, no la mida.
Retallable Amb un company (Bloc G) És opcional; el treball en equip de debò és la Fase 5.

Si va MOLT just: una branca, un canvi petit, un PR amb revisió de la IA i el merge. Lliurament complert.


6. Errors pedagògics a evitar (tu, professor)


7. Ponts amb la resta del curs

D'on venen — Sessió 3 (GitHub, Codespaces i el context)

Cap a on van — Fase 5 (presencial: automatitzar i col·laborar de debò)


Annex A — Frases per a la pissarra / recordatori (per al xat de classe)


Annex B — Prompt de revisió amb IA (per copiar-enganxar)

Que enganxin a sota del prompt el diff del PR (pestanya Files changed) o els fitxers nous sencers. Sense aquest material, la revisió surt vaga.

Ets un revisor de codi amable i clar. Revisa NOMÉS aquest canvi (no tota l'app).
És una app d'Apps Script (Codi.gs = motor, Index.html = cara, un full de Google
com a rebost). Explica-m'ho EN CATALÀ i senzill, sense tecnicismes.

Digue'm:
1. ERRORS: hi ha algun error o cosa que pugui petar? On i per què?
2. SEGURETAT: el canvi exposa dades, secrets o deixa entrar qui no ha d'entrar?
3. MILLORES: alguna cosa fàcil que el faria millor (opcional)?

Acaba amb una recomanació clara: el FUSIONO tal com està, o el RETOCO abans?

--- AQUÍ ENGANXO EL DIFF O ELS FITXERS DEL CANVI ---

Com llegir la resposta: si assenyala un error o risc real, tornar a la branca, arreglar-ho i fer commit + push (el PR s'actualitza sol). Si són millores opcionals, decidir si val la pena ara. Si diu que està bé, cap al merge. Recorda: decideixes tu.

Font editable: sessio_4/guia_professor_sessio4.md · aquesta pàgina web es genera automàticament des del Markdown.