Sari la conținut
syncra
Toate notele

Claude Code care lucrează peste noapte: skill-ul Brigadier, acum open source

Înainte să fie o aplicație desktop, Brigadier a fost un skill pe care îl foloseam în fiecare noapte: îi dai lui Claude Code un obiectiv, te culci, iar dimineața citești raportul. L-am pus în ordine și l-am publicat, ca oricine să-l poată folosi, în orice terminal.

De , fondator5 min de lectură

Astăzi am publicat skill-ul Brigadier (se deschide într-o filă nouă), versiunea 0.1.0, cu codul sursă deschis sub licența MIT. E un skill pentru Claude Code care duce munca mai departe cât dormi. Seara îi dai un obiectiv, iar dimineața găsești commituri, faze verificate și un raport.

A pornit ca setup-ul meu privat pentru lucrul peste noapte și a construit o bună parte din aplicația desktop Brigadier. Aplicația, despre care am scris în Cum orchestrăm agenți AI de programare, e experiența desktop completă și e încă în dezvoltare. Skill-ul e versiunea gratuită, pentru terminal, și funcționează deja.

1. Ce face

Scrii /brigadier și un obiectiv, de obicei descrierea unei faze din planul tău, cu regulile ei și o listă „done when”. Sesiunea ta devine brigadierul. El nu scrie cod. Conduce o echipă mică de workeri: sesiuni Claude Code separate și complete, fiecare în propriul tab sau propria fereastră de terminal, fiecare cu propriul context. Dacă ai Codex instalat, unii workeri pot fi și sesiuni Codex.

Brigadierul îi dă fiecărui worker o sarcină și îi răspunde la întrebări cum ai răspunde tu, pornind de la plan, de la CLAUDE.md și de la regulile obiectivului. Fiecare răspuns intră în registrul rulării, la „Decided on your behalf” („decis în numele tău”), așa că dimineața vezi ce s-a hotărât cât ai lipsit. Când munca e gata sau chiar nu mai poate merge mai departe, scrie un raport.

2. Orice terminal, abonamentul tău

Skill-ul rulează oriunde rulează Claude Code. În cmux, workerii se deschid ca taburi. În tmux, ca ferestre. Dintr-un terminal obișnuit (Terminal.app, iTerm, VS Code, o sesiune SSH) pornește tmux în fundal și îți spune singura linie de care ai nevoie ca să te conectezi și să urmărești.

Fiecare worker e o sesiune Claude Code obișnuită, pe contul tău, condusă prin propriul tău binar claude, nemodificat. Nimic nu trece printr-un proxy și nu există niciun server. Starea rulării rămâne în ~/.claude/brigadier/, pe mașina ta. Cum o noapte de lucru consumă din limitele planului tău la fel ca o zi, brigadierul urmărește fereastra de 5 ore și nu mai pornește workeri Claude când aproape s-a epuizat.

Codex e opțional. Cu el ai un al doilea reviewer, workeri pentru sarcini bine delimitate și un loc unde să trimiți munca atunci când fereastra lui Claude se termină, pentru că Codex are propria cotă.

3. Un skill și vreo 1.000 de linii de bash

Dedesubt nu există niciun framework. SKILL.md e manualul brigadierului. Vreo 1.000 de linii de bash, un utilitar numit brig și două backenduri mici pentru terminal, se ocupă de partea mecanică: deschid taburi, scriu în ele, citesc ecranele și țin starea rulării în fișiere simple. Toată gândirea o face Claude Code.

Hookurile sunt cele care îl fac de încredere. Fiecare worker pornește cu propriul fișier de setări, cu un Stop hook și un script de statusline. Brigadierul știe exact când s-a terminat tura unui worker și cât de plin îi e contextul, în loc să ghicească după ce apare pe ecran.

4. Așteptarea trebuie să fie ieftină

Cea mai mare parte a unei nopți e așteptare. Dacă sesiunea care coordonează și-ar întreba workerii din minut în minut, și-ar cheltui contextul și cota pe nimic.

Așa că brigadierul rulează brig wait ca o comandă în fundal și își încheie tura. Claude Code îl trezește când apare un eveniment: un worker și-a terminat tura, un context a trecut de prag, a apărut o cerere de permisiune, un worker s-a blocat sau limita de utilizare e aproape. O oră liniștită nu costă aproape nimic.

5. Predare în loc de compactare

E aceeași lecție ca în aplicație. Când contextul unui worker trece de un prag (implicit 70% sau 300.000 de tokeni), brigadierul îi cere să scrie o notă de predare: ce e gata, cu hash-urile commiturilor, ce e în lucru, pașii următori, deciziile deja luate și capcanele pe care le-a descoperit. O sesiune nouă continuă de la nota asta.

Asta a dat o continuitate mult mai bună decât compactarea unei sesiuni lungi. Brigadierul se predă singur în același fel, iar noul brigadier confirmă că a preluat lucrul înainte ca cel vechi să se închidă.

6. Fiecare fază primește o a doua opinie

O fază nu se termină când workerul spune că a terminat. Un verificator nou face review pe diff-ul fazei, verifică fiecare punct din „done when” rulându-l efectiv și repară ce găsește. Review-ul îl face Codex, dacă e instalat, altfel o sesiune Claude cu acces doar la citire. Planurile trec prin același filtru: înainte să aprobe schița unui worker, brigadierul cere un review pe ea.

Un al doilea furnizor prinde alte buguri. Review-urile făcute de Codex au găsit probleme reale pe care review-urile lui Claude le-au ratat, și s-a întâmplat și invers. De aceea, când Codex e disponibil, review-urile îl folosesc implicit pe el.

7. Incidentele reale au devenit reguli

Într-o noapte, un worker a rulat pkill -f vite -U <uid> ca să oprească un server de dezvoltare. Pe macOS, pkill nu mai citește opțiuni după primul pattern, așa că a tratat restul ca alte patternuri. A omorât toate shellurile din fundal ale Claude Code de pe mașină, iar rularea a stat pe loc ore întregi. Acum protocolul workerilor spune: nu omorî niciodată procese după nume, doar PID-urile pornite de tine. Din același motiv, căile temporare poartă numele rulării, ca o curățenie dintr-o rulare să nu atingă fișierele alteia.

Alte reguli au existat de la început. Workerii nu fac niciodată push, nu publică, nu fac deploy, nu cheltuiesc bani, nu se înscriu nicăieri și nu contactează pe nimeni. Când o sarcină are nevoie de unul dintre acești pași, workerul pune în loc un stub, iar raportul îl trece la „Waiting on you” („te așteaptă pe tine”).

8. Regulile nu sunt un sandbox

Ca să poată lucra nesupravegheați, workerii rulează implicit cu permisiunile ocolite, deci un worker poate rula orice comandă pe care o poate rula contul tău de utilizator. Regulile de mai sus sunt instrucțiuni pe care sesiunile le urmează. Cu permisiunile ocolite, tehnic nimic nu oprește un worker care le ignoră.

README-ul spune asta direct, așa că o spunem și noi. Folosește-l pe repo-uri și mașini unde asta e acceptabil. Dacă vrei ceva mai strict, o singură setare trece workerii într-un mod în care cererile de permisiune ajung la brigadier, iar el aprobă doar ce îi permit regulile. Și ține mașina trează: un laptop adormit oprește rularea.

Încearcă-l

Cu skills.sh (se deschide într-o filă nouă):

npx skills add syncra-studio/brigadier-skill -g -a claude-code

Sau ca plugin pentru Claude Code:

/plugin marketplace add syncra-studio/brigadier-skill
/plugin install brigadier-skill@brigadier-skill

Apoi rulează /brigadier doctor. Verifică terminalul, claude, jq, git și, opțional, codex, și îți arată exact cum repari ce lipsește. Încearcă un obiectiv mic într-un repo de test înainte să-i dai o noapte întreagă de lucru adevărat.

Cea mai mare parte a skill-ului au scris-o workeri Claude Code care rulau sub o versiune anterioară a lui, ceea ce a fost un test de rezistență bun. Pentru setup-urile altor oameni e însă nou, așa că rapoartele de buguri și ideile sunt binevenite pe GitHub (se deschide într-o filă nouă).

Alte note