Verkefni - 01

Commitarium

Frá lýsingu að lausn

Áætlun, útfærsla, rýni

Commitarium stýrir samvinnu tveggja forritunaragenta frá fyrstu skilgreiningu markmiðs þar til breyting hefur verið samþykkt og sameinuð. Annar leiðir verkefnið og útfærir breytingarnar; hinn rýnir áætlunina og kóðann. Hlutverk agentanna og samþykktarþrep eru stillanleg, en einangruð vinnuumhverfi og innbyggður Forgejo-þjónn gera ferlið afmarkað, sýnilegt og rekjanlegt.

Hlutverk
Höfundur
Ár
2026 – í dag
Staða
Í þróun

Tækni

  • Tauri 2 (Rust)
  • React
  • Golang
  • SQLite
  • Docker Compose
  • Forgejo
  • Claude Code
  • Codex

01

Vinnuferlið að baki Commitarium

Commitarium varð til út frá vinnuferli sem ég var þegar farinn að nota. Ég byrjaði yfirleitt á að ræða verkefni við Codex og móta með því áætlun. Ef verkefnið var lítið gat sami þráður séð um útfærsluna. Annars bað ég hann um ítarlegt yfirlit svo að nýr þráður gæti tekið við með allt nauðsynlegt samhengi.

Að útfærslu lokinni lét ég þráðinn opna pull request og bað Claude um að rýna breytingarnar. Ég færði athugasemdir Claude yfir til Codex, beið eftir lagfæringum eða rökstuðningi og fór síðan aftur til Claude til að staðfesta að öllum atriðum hefði verið svarað. Þetta hélt áfram þar til engin hindrandi athugasemd var eftir.

Vinnuferlið gaf góða raun, en utanumhaldið var þungt. Ég var sjálfur orðinn milliliður milli tveggja verkfæra og þurfti að færa samhengi, rýni og svör handvirkt á milli þeirra. Commitarium varð til sem leið til að halda útfærslu og rýni aðskildum en færa samskiptin á milli þeirra inn í skipulagt og endurtekningarhæft ferli.

Commitarium heldur áætlanagerð, útfærslu og rýni aðskildum en sér um samskiptin á milli.

02

Frá verkbeiðni að samþykktri breytingu

Hægt er að flytja inn verkefni úr möppu eða stofna nýtt verkefni í Commitarium. Fyrir hvert verkefni er útbúið sérstakt repo á innbyggðum Forgejo-þjóni. Því næst er tæknistakkurinn skilgreindur, með aðstoð agents ef þess er þörf, svo að rétt verkfæri, pakkar og önnur kerfisháð gögn séu tiltæk áður en vinna hefst.

Þróunarvinnan skiptist í verkbeiðnir sem fylgja allar sama grunnferlinu:

Skýra markmiðið
Verkbeiðni hefst á heiti og valfrjálsri lýsingu. Leiðandi agentinn ræðir verkefnið við notandann þar til markmið og umfang liggja skýrt fyrir. Vinnan heldur ekki áfram fyrr en markmiðið hefur verið samþykkt.

Gera áætlun
Leiðandi agentinn og rýnirinn gera saman útfærsluáætlun út frá samþykktu markmiði. Báðir þurfa að vera sammála um aðferðina og áætluninni er skipt í afmörkuð skref sem hvert um sig á að rúmast í einu commit-i.

Útfæra
Leiðandi agentinn vinnur sig í gegnum áætlunina í réttri röð, sannreynir hvert skref og gerir commit þegar því er lokið.

Rýna
Rýnirinn fer yfir útfærsluna í pull request-inu. Leiðandi agentinn svarar hverri athugasemd með breytingu á kóðanum eða rökstuðningi og ferlið heldur áfram þar til ekkert hindrar samþykki. Atriði sem falla utan samþykkts umfangs eru lögð fyrir notandann sem mögulegar nýjar verkbeiðnir.

Sameina
Þegar tilskilin samþykki og prófanir liggja fyrir staðfestir coordinatorinn stöðuna í Git og Forgejo og sameinar breytinguna. Agentarnir geta ekki sjálfir sameinað breytingar inn á vörðu greinina.

Að því loknu er hægt að samstilla niðurstöðuna við staðbundið Git-repo sem eitt hreint commit. Birting á upstream-repo er aðskilin aðgerð og Commitarium getur aðeins push-að niðurstöðunni á nýja grein. Kerfið getur hvorki breytt né force-push-að á grein sem þegar er til.

Rýniskjár í Commitarium sem sýnir lokna verkbeiðni, fimm þrep vinnuferlisins og lokasvör rýnis og leiðandi agents.
Rýnirinn og leiðandi agentinn skrá hvers vegna pull request-ið er tilbúið til sameiningar.

Í rýniferlinu kemur fram hvers vegna báðir agentar telja breytinguna tilbúna til sameiningar.

03

Pull request-ið varðveitir söguna

Forgejo er meira en innbyggður Git-þjónn í Commitarium. Þar verður til varanleg og rekjanleg vinnusaga fyrir hverja verkbeiðni.

Agentarnir geta rætt saman í gegnum coordinatorinn, en niðurstöðurnar sem skipta máli eru skráðar í pull request-ið: samþykkt áætlun, commit, athugasemdir úr rýni, svör við þeim, prófaniðurstöður og endanlegt samþykki. Eftir stendur hefðbundin og læsileg þróunarsaga í stað langs samtals milli agenta sem þarf að túlka eftirá.

Rýnirinn fer alltaf yfir nákvæmlega þá útgáfu sem hefur verið push-að. Áður en rýni, samþykki eða sameining getur fært ferlið áfram staðfestir coordinatorinn að uppgefin staða í Git og Forgejo sé raunverulega til staðar.

04

Sjálfstæði innan skýrra marka

Bæði Codex og Claude geta tekið að sér hlutverk leiðandi agents eða rýnis. Notandinn velur einnig hversu sjálfstætt kerfið má vinna. Commitarium getur stöðvað til samþykkis eftir hvert þrep eða leyft afmarkaðri vinnu að halda sjálfkrafa áfram í gegnum ferlið.

Agentarnir hafa töluvert sjálfstæði innan sinna vinnuumhverfa, en mörkin utan um þau eru skýr. Hver agent keyrir í einangruðum Docker-container með aðgang að afmörkuðu vinnusvæði og eigin Forgejo-auðkenni. Þeir fá hvorki aðgang að möppum notandans, upstream Git-auðkennum né Docker socket tölvunnar.

Coordinator skrifaður í Go fylgir föstum reglum og heldur utan um stöðu vinnuflæðisins, endurheimt og endanlega sameiningu. Forgejo varðveitir repo, pull request og rýnisögu. Tauri 2 og Rust mynda skjáborðsskelina og traust mörk utan um aðgerðir á tölvu notandans, en viðmótið er skrifað í React.

Agentarnir hafa sjálfstæði innan vinnuumhverfisins. Aðgangur að tölvu notandans, vörðu greininni og upstream-repo er utan þeirra marka.
Verkefnayfirlit í Commitarium sem sýnir hlutverk agenta, stillingar fyrir sjálfstæði og sameiningu og samstillingu við staðbundið Git-repo.
Verkefnastillingar halda hlutverkum agenta, samþykktarreglum, staðbundinni samstillingu og birtingu á upstream-repo aðskildum og sýnilegum.

Stillingar verkefnisins gera hlutverk agenta, sjálfstæði, sameiningu og afhendingu breytinga sýnileg og afmörkuð.

05

Smíðað fyrir eigin notkun

Ég smíðaði Commitarium fyrir mitt eigið vinnuferli en ekki í kringum ímyndaða notkun. Verkefnið sjálft var þróað með Codex og Claude samkvæmt sömu grunnhugmynd: breytingum var skipt í lítil skipulögð skref, þær rýndar sérstaklega og samþykktar áður en þær voru sameinaðar.

Commitarium er opinn hugbúnaður með Apache 2.0-leyfi og er enn á prerelease-stigi. Vinnuferlið sem hér er lýst er virkt og installerar eru fáanlegir fyrir macOS, Windows og Linux. Undirritun, víðtækari prófanir á ólíkum kerfum og frekari frágangur eru enn í vinnslu.

06

Það sem tekur við

Ég er byrjaður að vinna að öflugri óháðri sannprófun. Rýnirinn myndi útbúa samþykkispróf án þess að móta þau eftir fullunninni útfærslu, en leiðandi agentinn myndi útfæra samþykkta virkni án þess að sjá prófin. Þannig væri hægt að meta niðurstöðuna út frá skilyrðum sem hvorugur agentinn hefði getað lagað að vinnu hins.

Einnig stendur til að bæta við farsímaviðmóti sem parast við skjáborðsforritið. Svo lengi sem kveikt er á tölvunni sem keyrir Commitarium væri hægt að fylgjast með framvindu, bregðast við þegar inntaks er þörf og stjórna vinnuferlinu úr fjarlægð.