all

Tahti - Autonominen Kehitysorkestraattori

  • Home /
  • Tahti - Autonominen kehitysorkestraattori

Tahti ⭐

Tahti on avoimen lähdekoodin työkalu, jonka rakensimme automatisoimaan ohjelmistokehityksen työnkulkuja. Se ajaa autonomisia AI-botteja, jotka kirjoittavat koodia, korjaavat bugeja ja hallitsevat GitLab-merge requesteja — sinun aikasi vapautuu muuhun.

Käytämme Tahtia itse omien projektien ylläpitoon. Jos se kuulostaa hyödylliseltä, olet tervetullut ottamaan sen käyttöön.


Miten se toimii

Tahti on MCP-palvelin (Model Context Protocol). Se integroituu GitHub Copilot CLI:hin tekoälymoottorina. Kun se on konfiguroitu, ohjaat sitä luonnollisella kielellä Copilot-sessiossasi.

Peruskäsitteet:

Jobit ovat työn yksiköitä: tehtävänkuvaus, GitLab-repositorio ja haara. Jokainen jobi saa oman eristetyn paikalliskloonin, joten useampi botti voi toimia samanaikaisesti.

Botit suorittavat jobeja. Botti käy tehtävän läpi sykli kerrallaan, commitoi edistymisen jokaisen syklin jälkeen ja luo valmistuttuaan merge requestin. Jos CI menee läpi, MR voidaan yhdistää automaattisesti.

Monitorit tarkkailevat olosuhteita ja luovat jobeja automaattisesti — esimerkiksi luomalla korjausjobin aina kun CI-putki epäonnistuu.

Ajastukset ohjaavat automaattista botin suoritusta — poimivat odottavia jobeja ja ajavat niitä asetetuin väliajoin ilman manuaalista puuttumista.


Jobin elinkaari

Jobi kulkee näiden vaiheiden läpi:

  1. Luotu — Jobi on olemassa tehtävänkuvauksen ja kohderepositorioin kanssa. Botti ei vielä aja.
  2. Käynnissä — Botti työskentelee aktiivisesti. Se lukee TODO-listan, tekee muutoksia ja commitoi jokaisen syklin jälkeen.
  3. MR auki — Botti viimeisteli työn ja loi merge requestin. CI on käynnissä.
  4. Yhdistetty — MR yhdistettiin (manuaalisesti tai automaattisesti CI:n mentyä läpi). Jobi siirtyy arkistoon.
  5. Arkistoitu — Työtila siivottu, logit ja artefaktit tallennettu.

Jobit voivat myös olla pysähdyksissä (botti pysäytetty, työ säilytetty) tai epäonnistuneita (botti antoi periksi liian monien virheiden jälkeen). Pysähdyksissä olevia jobeja voi jatkaa koska tahansa.


Aloittaminen

Asenna Tahti:

npm install -g @kotocoop/tahti

Lisää se MCP-konfiguraatioosi (esim. ~/.copilot/mcp-config.json):

{
  "mcpServers": {
    "tahti": {
      "command": "tahti"
    }
  }
}

Avaa sitten Copilot-sessio workspace-hakemistossasi. Copilot pyytää lupaa käyttää Tahti-työkaluja — hyväksy kerran ja olet valmis.

Tarvitset GitLab API -tokenin ja GitHub Copilot -tilauksen botteja varten.

Täydelliset asennusohjeet löytyvät Tahti-repositoriosta.


Jobien hallinta

Jobit ovat työn perusyksikkö. Luo sellainen kuvailemalla tehtävä luonnollisella kielellä.

Esimerkkiprompteja:

“Luo jobi kotocoop/myapp:lle develop-haaralle — lisää syötteen validointi kirjautumislomakkeeseen”

“Listaa kaikki jobit”

“Näytä mitä coverage-improvement -jobi on tehnyt tähän mennessä”

“Käynnistä botti login-validation -jobille”

“Pysäytä kaikki käynnissä olevat botit”


Monitorit

Monitorit toimivat taustalla ja luovat jobeja automaattisesti kun ehdot täyttyvät. Jokainen monitori tarkistaa asetetuin väliajoin ja noudattaa jäähtymisaikaa päällekkäisten jobien välttämiseksi.

Esimerkkiprompteja:

“Luo CI-monitori kotocoop/myapp:lle develop-haaralle, tarkista 5 minuutin välein”

“Näytä monitorien tila”

“Triggeröi SonarQube-monitori nyt”

“Pysäytä myapp:n CI-monitori”

CI-putkimonitori

Tarkkailee haaraa epäonnistuneiden putkien varalta. Kun viimeisin putki epäonnistuu, korjausjobi luodaan.

Tärkeimmät asetukset:

  • project — GitLab-projektin polku (esim. myteam/myapp)
  • branch — tarkkailtava haara (oletus: develop)
  • status — putken tila, joka triggeröi (oletus: failed)
  • interval — tarkistusväli sekunteina (esim. 300 = 5 minuuttia)
  • cooldown — minimiaika triggerien välillä (esim. 3600 = 1 tunti)

Kattavuusanalyysimonitori

Lataa kattavuusraportit CI-artefakteista ja tarkistaa onko tiedostoja alle kynnysarvon. Luo parannusjobeja kattavuustason mukaan ryhmiteltyinä.

Tärkeimmät asetukset:

  • project — GitLab-projektin polku
  • threshold — kattavuusprosentti, jonka alle jäävät tiedostot triggeröivät jobin (oletus: 80)
  • jobName — CI-jobi, joka tuottaa kattavuusartefaktin (oletus: test:unit)

SonarQube-monitori

Hakee SonarQube-palvelimelta avoimia ongelmia. Luo korjausjobeja konfiguroitua vakavuustasoa vastaavista ongelmista.

Tärkeimmät asetukset:

  • serverUrl — SonarQube-palvelimen URL
  • projectKey — SonarQube-projektin avain
  • token — SonarQube API -token
  • severities — vakavuustasot joihin reagoidaan (oletus: ["CRITICAL", "MAJOR"])
  • issuesPerJob — maksimi ongelmia per korjausjobi (oletus: 10)
  • fileCooldownMinutes — ohita haaralla äskettäin muokatut tiedostot (oletus: 120)

Merge-konflikimonitori

Tarkistaa avointen merge requestien konfliktit kohdehaaran kanssa. Luo selvitysjobin jokaiselle konfliktoivalle MR:lle.

Tärkeimmät asetukset:

  • project — GitLab-projektin polku
  • targetBranch — haara, jota vasten tarkistetaan (oletus: develop)

Testivirhemanitori

Tunnistaa epäonnistuneet testijobinnit viimeisimmästä CI-putkesta ja luo debug-jobeja virheiden logit mukaan liitettynä.

Tärkeimmät asetukset:

  • project — GitLab-projektin polku
  • branch — tarkistettava haara

TODO-tiedostomonitori

Tarkkailee markdown-tiedostoja merkitsemättömien tehtäväkohtien (- [ ]) varalta. Kustakin uudesta kohdasta tulee jobi. Seuraa tilaa niin ettei jo käsiteltyjä kohtia triggeröidä uudelleen.

Tärkeimmät asetukset:

  • files — tarkkailtavat markdown-tiedostot (esim. ["README.md", "ROADMAP.md"])
  • onlyWhenIdle — luo jobeja vain kun muita jobeja ei ole aktiivisena (oletus: true)

Koodikommenttimonitori

Skannaa lähdekooditiedostoja TODO-, FIXME- ja HACK-kommenttien varalta. Luo siivousjobeja uusien kommenttien ilmestyessä.

Tärkeimmät asetukset:

  • extensions — skannattavat tiedostotyypit (esim. [".js", ".ts"])
  • excludeDirs — ohitettavat hakemistot (esim. ["node_modules", "dist"])
  • commentTypes — seurattavat kommenttityypit
  • threshold — uusien kommenttien minimimäärä jobin triggeroimiseen (oletus: 1)

MR-luontivirhemanitori

Skannaa jobien työtiloja epäonnistuneista merge request -luontiyrityksiä ja luo uusintayritystä varten jobeja.

Monimutkaisuuden automaattinen jakamismonitori

Etsii jobeja, jotka botit ovat merkinneet liian monimutkaisiksi, ja jakaa ne automaattisesti pienemmiksi alitehtäviksi.

Mukautettu skriptimonitori

Ajaa komentotulkkiskriptin ja triggeröi jobin kun tulos täsmää regexiin. Käytä tähän mitä tahansa ehtoa, jota sisäänrakennetut monitorit eivät kata.

Tärkeimmät asetukset:

  • scriptPath — skriptin polku
  • successPattern — regex, jota verrataan skriptin stdout-tulosteeseen

Ajastukset

Ajastukset ajavat odottavia jobeja automaattisesti asetetuin väliajoin. Ilman ajastusta käynnistät botit manuaalisesti.

Esimerkkiprompteja:

“Luo toistuva ajastus, joka ajaa 2 jobia 10 minuutin välein”

“Näytä aktiiviset ajastukset”

“Pysäytä toistuva ajastus”

Toistuvat ajastukset ajavat kiinteällä aikavälillä ja käynnistävät konfiguroitavan määrän botteja odottavien jobien poolista. Jobit valitaan prioriteetin mukaan tai satunnaisesti kun prioriteetit ovat samat.

Kertakäyttöiset ajastukset triggeröivät yksittäisen ajon viiveen jälkeen — hyödyllinen viivästettyihin käynnistyksiin.


Tyypillisiä käyttötapoja

Automaattiset CI-korjaukset. CI-monitori tarkkailee kehityshaaraa. Putki epäonnistuu → korjausjobi luodaan → botti diagnosoi ja korjaa → merge request luodaan. Manuaalista reagointia ei tarvita.

Testikattavuuden parantaminen. Kattavuusmonitori luo jobeja kun tiedostot alittavat kynnysarvon. Toistuva ajastus käy ne läpi ajan myötä.

Koodilaatu. SonarQube-monitori luo korjausjobeja vakavuustason ylittäville ongelmille. Aja rinnakkain tai yksi kerrallaan.

Tiekartan toteutus. Laita tehtävät markdown-tiedostoon checkboxeina. TODO-tiedostomonitori muuttaa ne jobeiksi ja toistuva ajastus ajaa ne.

Rinnakkainen työ. Aja useita botteja samanaikaisesti eri repositorioissa, ominaisuuksissa tai ylläpitotehtävissä — kukin omassa erstetyyssä työtilassaan.


Huomio tekoälystä ja yksityisyydestä

Tahtin botit käyttävät GitHub Copilot CLI:tä tekoälymoottoreinaan. Kun botti työskentelee koodisi parissa, koodi lähetetään GitHubille/Microsoftille ja käsitellään heidän käyttöehtojensa mukaisesti. Tahti itse toimii paikallisesti eikä lähetä koodiasi minnekään.


Lähdekoodi ja lisenssi

Tahtin kehittää Koto Co-op ja se julkaistaan avoimen lähdekoodin ohjelmistona.

Lue lisää Koto Co-opista →