
Abide hufanya nini
Abide hutekeleza maagizo mahususi ya mradi ambayo linters za kawaida haziwezi kuyatathmini kwa kutegemeka. Maagizo haya yanaweza kuwa katika faili kama AGENTS.md au CLAUDE.md na kujumuisha sheria kama tumia Yup badala ya uthibitishaji wa mikono, usiunde helper yenye mtumiaji mmoja pekee, au usimwonyeshe mtumiaji kosa ghafi kamwe.
Baada ya kila uhariri au zamu iliyokamilika, Abide hutuma sheria husika na tofauti ya msimbo kwa muundo wa maamuzi wa Jev wa TypeSafe. Jev hurudisha uwezekano badala ya maandishi huru. Ikiwa uwezekano unaonyesha ukiukaji, Abide humwambia wakala wa usimbaji sheria iliyovunjwa na kumwomba arekebishe msimbo katika zamu hiyo hiyo.

Jev huona sheria na tofauti ya msimbo, si mazungumzo ya wakala. Hii huwezesha Abide kutumia ukaguzi uleule kwa uthabiti katika kipindi kirefu cha usimbaji. Kulingana na kipimo cha replay kilichochapishwa na hazina, ukaguzi huchukua takriban milisekunde 300 katika Jev, huku hook kamili ikichukua karibu sekunde moja Node inapoanzishwa.
Vipengele muhimu
- Ukaguzi wa uhariri kiotomatiki: Sheria zinaweza kuendeshwa mara moja baada ya kila uhariri wa msimbo.
- Ukaguzi wa kiwango cha zamu: Sheria zinazohitaji tofauti kamili ya kazi zinaweza kuendeshwa mara moja mwishoni mwa zamu.
- Muunganisho wa wakala: Abide inaauni Claude Code, Codex, na OpenCode.
- Rubriki inayomilikiwa na hazina: Sheria zilizokusanywa huhifadhiwa katika faili inayosomeka na rafiki kwa commit,
.abide/rubric.json. - Sheria zenye upeo: Sheria inaweza kutumia upeo wa glob ili maswali tofauti yahusike na njia za API, stylesheet, au makundi mengine ya faili.
- Ukaguzi wa msimbo uliopo: Abide inaweza kutathmini faili kana kwamba zimeandikwa hivi punde.
- Ulinganifu na urekebishaji: Inaweza kujaribu sheria dhidi ya historia ya hivi karibuni ya Git, kuzima sheria zisizofaa, na kusaidia kuandika upya sheria ambazo hazijawahi kutekelezwa.
- Hooks zinazofunguka zikishindwa: Vitambulisho vinavyokosekana, hitilafu za mtandao, au hitilafu za hook hazizuii kipindi cha usimbaji.
- Hakuna sera iliyojengewa ndani: Abide hutekeleza sheria zinazotokana na faili zako za maagizo badala ya kulazimisha seti ya sheria iliyowekwa mapema.
Mahitaji ya awali
Unahitaji hazina yenye maagizo kwa wakala wako wa usimbaji na angalau wakala mmoja anayeungwa mkono: Claude Code, Codex, au OpenCode. Pia unahitaji ufunguo wa API wa TypeSafe kutoka typesafe.ai. Vinginevyo, Abide inaweza kutumia ufunguo uliopo wa Vercel AI Gateway kupitia kigezo cha mazingira AI_GATEWAY_API_KEY.
Sakinisha na usanidi Abide
Hatua ya 1: Hifadhi ufunguo wako wa API
Endesha amri ya kuingia na ubandike ufunguo wako wa TypeSafe utakapoombwa:
npx @coldtea/abide loginAbide huhifadhi ufunguo katika ~/.abide/.env ikiwa na ufikiaji wa mmiliki pekee. Badala yake, unaweza kuweka vitambulisho katika .env.local au .env kwenye mzizi wa hazina. Utafutaji wa vitambulisho huangalia kwanza mazingira, kisha faili za hazina, na mwishowe ~/.abide/.env.
Ikiwa unatumia Vercel AI Gateway, weka AI_GATEWAY_API_KEY badala ya ufunguo wa TypeSafe. Vitambulisho havikubaliki kupitia bendera za mstari wa amri na haviwekwi kwenye kumbukumbu.
Hatua ya 2: Sakinisha hooks za wakala
Ukiwa kwenye hazina yako, anzisha Abide:
npx @coldtea/abide initBila jina la wakala, init husakinisha kwenye kila wakala anayeungwa mkono anayempata. Unaweza pia kulenga muunganisho mmoja wazi:
npx @coldtea/abide init claude
npx @coldtea/abide init codex
npx @coldtea/abide init opencode- Claude Code: Muunganisho huongezwa kwenye
~/.claude/settings.json. - Codex: Muunganisho huongezwa kwenye
~/.codex/hooks.json. - OpenCode: Programu-jalizi husakinishwa kwenye
~/.config/opencode/plugins/abide.js.
Ongeza --project unapotaka usakinishaji wa kiwango cha hazina ambao washiriki wa timu wanaweza kuupokea pamoja na checkout:
npx @coldtea/abide init claude --projectCodex inahitaji hatua moja ya ziada ya idhini. Anzisha Codex, ingiza
/hooks, kisha ukubali maingizo manne ya hook ya Abide. Codex huomba idhini hii mara moja kwa kila hook mpya.
Hatua ya 3: Kusanya sheria za hazina
Anzisha wakala wako wa usimbaji kama kawaida. Mwanzoni mwa kipindi cha kwanza, Abide hukagua ikiwa faili za maagizo zimebadilika. Kisha wakala hukusanya maagizo yanayotumika kuwa .abide/rubric.json na kuripoti alichopata.
Pia unaweza kukusanya kabla ya kuanza kipindi kipya:
abide compileFanya commit ya .abide/rubric.json ikiwa unataka rubriki inayotekelezeka ya hazina ionekane na iweze kukaguliwa na timu. Kila uamuzi hutaja sheria katika faili hili na kunukuu maagizo ya chanzo ambayo ilitokana nayo.
Matumizi ya msingi
Ruhusu Abide ikague uhariri wa wakala kiotomatiki
Baada ya kuanzishwa, anzisha claude, codex, au opencode kama kawaida. Hakuna huduma tofauti ya usuli inayohitajika. Tuseme maagizo yanasema kwamba vituo vya API lazima vitumie Yup na visiidhinishe ingizo kwa mikono. Ikiwa wakala ataandika ulinzi wa mikono, Abide inaweza kurudisha ujumbe kama huu:
Abide: Hariri hii inaonekana kuvunja kanuni kutoka kwa maagizo ya hifadhi hii.
- Kanuni "api-validation-uses-yup" kutoka ~/.codex/AGENTS.md mstari wa 65:
"Unapoandika ncha za API, USIANDIKE uthibitishaji wa ingizo wewe mwenyewe.
Tumia Yup (yenye ujumbe wazi wa uthibitishaji) + rudisha majibu mapema katika kidhibiti cha API".
(0.86)
Rekebisha apps/web/src/pages/api/logout.ts sasa, kisha endelea na kazi.Wakala hupokea ombi la kurekebisha na anaweza kurekebisha ukiukaji huo kabla ya kuendelea. Ukiwa na OpenCode, ukiukaji wa uhariri huongezwa kwenye matokeo ya zana. Ukiukaji wa kiwango cha mzunguko hutoa ujumbe mmoja wa kufuatilia baada ya mzunguko.
Kagua mabadiliko ambayo hayajawekwa kwenye hifadhi mwenyewe
Tumia check kutathmini mabadiliko ya sasa ambayo hayajawekwa kwenye hifadhi kwa njia ile ile ambayo hooks zingetumia:
abide checkUnaweza pia kutoa njia unapohitaji kupunguza ukaguzi:
abide check apps/web/src/pages/api/Kagua msimbo uliopo
Amri ya audit hutathmini faili zilizopo kana kwamba zimeundwa hivi punde. Hii ni muhimu unapopitisha Abide katika hifadhi iliyoanzishwa tayari:
abide audit src/Matokeo yanajumuisha muhtasari kwa kila kanuni na orodha iliyopangwa kwa faili. README inaripoti kwamba kukagua njia 33 za API katika programu halisi ya Next.js kulichukua takriban sekunde 12 na kugharimu karibu senti moja, ingawa matokeo halisi hutegemea hifadhi na kanuni.
Kagua shughuli za kanuni
Endesha amri ya ripoti ili kuona kanuni zako, zile ambazo zimetumika, na zile ambazo hazijawahi kutumika:
abide reportKwa matokeo yanayoweza kusomwa na mashine, ongeza --json. Matokeo ya JSON yanapatikana pia kwa check, audit, bench, na calibrate.
Elewa muda wa kanuni na hukumu
Kila kanuni iliyokusanywa huendeshwa katika mojawapo ya awamu mbili:
- Awamu ya uhariri: Huendeshwa baada ya uhariri mmoja na kutathmini sehemu hiyo ya mabadiliko.
- Awamu ya mzunguko: Huendeshwa mara moja mwishoni mwa mzunguko na kutathmini tofauti kamili dhidi ya picha iliyochukuliwa mwanzoni mwa mzunguko.
Tathmini ya kiwango cha mzunguko ni muhimu kwa maswali ambayo hayawezi kujibiwa kutokana na uhariri wa kwanza pekee, kama vile ikiwa wakala aliongeza utendaji ambao mtumiaji hakuomba. Mwishoni mwa mzunguko, Abide pia hutumia kanuni za awamu ya uhariri kwa mabadiliko yaliyoundwa kupitia amri za shell.
Hukumu zimegawanywa katika viwango vya uwezekano:
- 0.8 au zaidi: Wakala anaagizwa kurekebisha ukiukaji.
- 0.5 hadi chini ya 0.8: Dokezo linaonyeshwa, lakini wakala haagizwi kurekebisha.
- Chini ya 0.5: Hakuna kinachoonyeshwa.
Mtiririko wa kazi wa kina
Rekebisha kanuni kwa kulinganisha na historia ya Git
Kanuni iliyoandikwa vibaya inaweza kupata alama ya karibu na wastani katika mabadiliko mengi yasiyohusiana na isitoe matokeo muhimu kamwe. Amri ya urekebishaji hutathmini kila kanuni dhidi ya sehemu halisi za hivi karibuni kutoka kwenye historia ya Git ya hifadhi:
abide calibrateAbide hutumia sehemu ishirini za hivi karibuni kwa mchakato huu na inaweza kuzima kanuni ambazo hazifanyi kazi kwa ufanisi. Kagua matokeo kabla ya kutegemea rubriki mpya iliyokusanywa katika timu.
Rekebisha kanuni ambazo hazijawahi kutumika
Baada ya kubaini kanuni zisizofaa, tumia tune kumfanya wakala aziandike upya:
abide tuneKwa sababu kila ingizo la rubriki linanukuu maagizo yake ya chanzo, hukumu yenye mashaka inaweza kufuatiliwa hadi kwenye maneno yaliyoizalisha. Kuboresha maagizo ya msingi kwa ujumla hufanya ukaguzi unaolingana uwe wazi zaidi.
Rudia vipindi vya awali vya wakala
Tumia replay kuhukumu vipindi vya awali kutoka kwa mmoja wa mawakala wanaoungwa mkono:
abide replay claude
abide replay codex
abide replay opencodeHii inaweza kukusaidia kutathmini rubriki dhidi ya kazi ambayo tayari imefanyika badala ya kusubiri ukiukaji wa siku zijazo.
Pima ucheleweshaji na matumizi ya gharama ya ndani
Endesha amri ya kipimo ili kupima utendaji na gharama kwenye mashine yako mwenyewe:
abide benchHifadhi inaripoti kwamba kukagua kanuni zake 13 hutumia takriban tokeni 1,000 hadi 1,600 za ingizo, hugharimu karibu $0.00004 hadi $0.00007 kwa kila ukaguzi, na huchukua takriban milisekunde 300 katika Jev. Takwimu hizi zilipimwa moja kwa moja dhidi ya TypeSafe na zinaweza kutofautiana, kwa hiyo kipimo cha ndani ndicho mwongozo bora kwa usanidi wako.
Tumia mawanda ili kuweka maswali yakiwa muhimu
Kanuni katika .abide/rubric.json zinaweza kujumuisha mawanda yanayotegemea glob. Tumia mawanda haya wakati maagizo yanatumika kwa faili fulani pekee. Kwa mfano, kanuni za uthibitishaji zinaweza kuwa za njia za API, ilhali kanuni za mitindo zinapaswa kuwekwa kwenye laha za mitindo pekee. Mawanda finyu hupunguza hukumu zisizo muhimu na hufanya hukumu ziwe rahisi kueleweka.
Faragha na tabia wakati wa kushindwa
H mistari iliyobadilishwa hutumwa kwa TypeSafe kwa kutumia ufunguo wako mwenyewe, huku uhifadhi wa data wa sifuri ukiombwa katika kila ombi. README inasema kwamba data hiyo haitumwi kwenye seva inayoendeshwa na Abide.
Hooks za Abide zimeundwa ili zisisitishe kipindi cha wakala. Njia za hook hutoka kwa mafanikio, hutumia muda wa mwisho wa lazima, na huchapisha tu kile ambacho mwenyeji anatarajia. Ikiwa hakuna ufunguo unaopatikana au mtandao haupatikani, uhariri unaendelea bila ukaguzi. Ukaguzi uliokosekana huandikwa kwenye .abide/events.jsonl, na abide report huujumuisha katika hesabu zake.
Ondoa Abide
Ondoa Abide kutoka kwa kila wakala ambayo ilisakinishwa:
abide uninstallIli kuondoa muunganisho mmoja pekee, taja wakala:
abide uninstall codexOngeza --project unapoondoa usakinishaji wa kiwango cha mradi. Kuondoa usakinishaji huondoa maingizo ya Abide pekee. Huacha faili za rubriki na ~/.abide/.env mahali pake hadi uzifute mwenyewe.
Hitimisho
Abide hubadilisha maagizo ya hazina yaliyoandikwa kwa lugha asilia kuwa ukaguzi unaotekelezwa wakati wote wa kipindi cha uandishi wa msimbo kwa kutumia AI. Sakinisha hooks zinazofaa, kusanya na kagua .abide/rubric.json, kisha tumia ukaguzi wa kiotomatiki, ukaguzi wa kina, ripoti, urekebishaji wa viwango na uboreshaji ili kuweka sheria zikiwa na ufanisi. Matokeo yake ni safu nyepesi ya utekelezaji wa kanuni ambazo linters za kawaida haziwezi kueleza.
