Checkpoint & Resume
Garantează că locul de muncă supraviețuiește restartului și că setup-ul se face o singură dată, în batch.
A. Bootstrap (prima sesiune / bootstrap_done=false)
Section titled “A. Bootstrap (prima sesiune / bootstrap_done=false)”- Citește
config/.env. Pune întrebările de setup DOAR pentru valorile încă neconfigurate (placeholder), TOATE deodată, ca un singur batch:- URL + token GitLab + project ID
- Cheie GLM (Z.ai) + model
- Cheie Kimi (Moonshot) + model
- Cadență:
QUESTION_BATCH_SIZE,MAX_GREEN_ITERATIONS - Care bloc(uri) pornesc primele (A / B / C / toate în paralel)
- Acceptă două moduri de răspuns: (a) teamlead-ul completează
config/.envdirect, sau (b) răspunde în chat și TU scrii valorile înconfig/.env(NU în fișiere comise;.enve gitignored). - Validează: rulează
bash bootstrap.sh(idempotent) și un ping rapid GitLab (skillgitlab-issues, comandawhoami). - Setează în
state.json:bootstrap_done=true,current_block, timestamp. - Inițializează
task-ledger.mddin planul aprobat.
B. Formatul checkpoint-ului
Section titled “B. Formatul checkpoint-ului”state.json (sursa de adevăr a poziției):
{ "bootstrap_done": true, "current_block": "C", "current_task": "C-014", "last_checkpoint": "2026-06-18T10:22:00Z", "updated_at": "...", "blocks": { "A": "in_progress", "B": "in_progress", "C": "in_progress" }}task-ledger.md (istoricul lizibil) — o linie per task:
- [DONE] C-013 Auth service unit tests | reviewer:APPROVE | mr:!42 | ckpt:2026-06-18T10:05Z- [WIP] C-014 Auth refresh-token endpoint | branch:feat/c-014 | last-green:test 6/9- [TODO] C-015 Angular login form + validation.workplace/checkpoints/<task>.md — context bogat per task (ce s-a făcut, fișiere atinse, ultima stare verde, ce urmează) ca un subagent proaspăt să poată relua fără tine.
C. Scrie checkpoint (după fiecare task / iterație verde)
Section titled “C. Scrie checkpoint (după fiecare task / iterație verde)”- Actualizează linia taskului în
task-ledger.md. - Scrie
.workplace/checkpoints/<task>.mdcu: rezumat, fișiere modificate, comenzi de verificare rulate + rezultat, „NEXT STEP”. - Actualizează
state.json(current_task,last_checkpoint). - Commit local pe branch-ul de lucru (nu
main).
D. Resume (orice sesiune ulterioară)
Section titled “D. Resume (orice sesiune ulterioară)”- Citește
state.json→ aflăcurrent_block/current_task. - Citește
task-ledger.md(ce e DONE/WIP/TODO) și checkpoint-ul taskului WIP. - Citește
questions/inbox.md— aplică răspunsurileANSWERED. - Anunță în 3 rânduri: unde suntem, ce urmează, dacă există blocaje. Apoi CONTINUĂ de la „NEXT STEP” — nu reface ce e DONE.
Regulă: dacă un task era WIP și nu există checkpoint coerent, NU presupune că e gata — re-verifică testele/build-ul înainte de a-l declara done.