Ett mandat är en stående instruktion om vad Coroid ska arbeta med när ingen finns där att fråga: ett mål, vilka projekt det omfattar, en budget per vecka eller månad och när arbetet ska stoppas. Förfrågningar som kommer från dina system – via inkommande arbete API, automatiseringar, integrationer eller övervakning – bedöms mot dina aktiva mandat. Förfrågningar från personer omfattas inte; se Vilka förfrågningar ett mandat styr.
Ett mandat avgör vilket arbete som får starta. Det ger inte Coroid rätt att slå ihop eller driftsätta något. Se Vad Coroid avgör och vad du själv bestämmer.
När ett mandat passar
Skriv ett mandat när arbete når Coroid utan att någon ber om varje enskild uppgift, och du vill bestämma i förväg hur mycket av det som får utföras:
- ett felhanterings- eller övervakningsverktyg som rapporterar incidenter via flödet för inkommande arbete API;
- GitHub-ärenden eller meddelanden i Slack, Telegram och Jira som en Kvalificera arbete automatisering omvandlar till förfrågningar;
- ett support- eller feedbackverktyg som vidarebefordrar kundernas rapporter;
- en skanner eller ett CI-jobb som skapar en rapport för varje fynd.
Utan ett mandat behandlas de här förfrågningarna som alla andra: när de har kvalificerats köas de till samma agentplatser som arbete som personer ber om, utan egen budget. En vecka med många aviseringar kan då fylla kön. Ett mandat sätter gränser: vilka projekt förfrågningarna får påverka, hur mycket de får kosta per vecka eller månad och hur många agentplatser de får använda samtidigt.
Så här går en förfrågan till
Kommer in utan att någon person skickar den
- En avisering från ett felspårningsverktyg skickas till arbetsintagets API tillsammans med signalen
- Ett ärende i GitHub via en automatisering för att kvalificera arbete
- En kundrapport från ditt supportverktyg via arbetsintagets API
En förfrågan som någon skickar via Nytt arbete går också igenom kvalificering, men kräver inget mandat.
Kvalificering
Rensa, kontrollera den aktuella versionen, slå ihop dubbletter, verifiera, bedöma och styra vidare.
Godkännande
Håll API-rutter fria från ohanterade undantag
- Projekt
- Fakturering API
- Budget
- 100 USD och 10 agenttimmar per vecka
- Mandatplatser
- 1 av 2 platser används, hälften av 4 agentplatser
- Hanteras samma incident redan i något projekt?
- Visade bedömningen att beteendet är avsett?
- Finns det en ledig plats inom mandatets andel?
- Finns det budget kvar den här veckan?
- Går utfallet att mäta, eller tillåter mandatet även arbete där det inte går?
Uppgiften skapas med en reserverad plats och en del av veckans budget.
Kopplas till det arbete som redan hanterar incidenten. Inget nytt skapas.
Beteendet är avsett. Inget skapas.
Kontrolleras igen varje minut. Godkänns när en plats eller budget blir ledig, eller avslutas efter en hel veckas väntan.
Efter godkännande
Uppgift
Specifikation, plan och kod, precis som för vilken uppgift som helst.
Verifiering
Tester, kvalitetskontroller, QA och granskning.
Pull request
I en egen branch, riktad mot din.
Utfallskontrakt
Ingen ny händelse för den här incidenten under 24 timmar efter 500 förfrågningar till dess rutter.
Ta mandatet i figuren, som gäller ett projekt som heter Billing API. Projektets felhanteringsverktyg skickar en avisering om ett nytt undantag i fakturaexporten. Aviseringsregelns webhook skickar den via ett enkelt relä som du själv har satt upp till flödet för inkommande arbete API, med felhanteringsverktygets ärende-ID som signalens fingeravtryck, den berörda routen och 500 förfrågningar som underlag som måste samlas in innan åtgärden kan utvärderas.
- Kvalificering fungerar som för andra förfrågningar: den tar bort hemligheter och personuppgifter, kontrollerar den aktuella releasen, söker efter dubbletter, verifierar rapporten och bedömer den.
- Godkännande hittar mandatet som omfattar Billing API och kontrollerar, i tur och ordning: om samma ärende redan hanteras, här eller i ett annat projekt; om bedömningen visade att beteendet är avsett; om någon av mandatets två platser är ledig; om det finns utrymme i veckans budget; och om resultatet går att mäta.
- När förfrågan har godkäntsblir den en uppgift med en reserverad plats och en del av veckans budget. Den följer det vanliga flödet – specifikation, kod, tester, kvalitetsgrindar, QA och granskning – och avslutas som en pull request.
- En person slår ihop den. Uppgiftens resultatkontrakt anger vad sammanslagningen ska åstadkomma: inga nya händelser för det ärendet under 24 timmar efter 500 förfrågningar på routen.
Om samma avisering utlöses igen markeras den andra förfrågan som redan löst och länkas till den första. Om en misslyckad driftsättning skapar sex nya ärenden på en gång körs högst två åt gången inom mandatet; resten skjuts uppoch godkänns sedan en i taget när platser blir lediga. De två andra agentplatserna förblir lediga för sådant som teamet ber om under Nytt arbete.
Exempel på mandat
Hindra att produktionsfel samlas på hög
Dina API-tjänster rapporterar fel till ett felhanteringsverktyg, och de åtgärdas när någon får tid.
| Inställning | Värde |
|---|---|
| Typ | Löpande |
| Mål | Håll routarna i Billing API fria från ohanterade undantag |
| Projekt | Billing API |
| Budget | 100 USD och 10 agenttimmar per vecka |
| Godkänn arbete vars resultat inte går att mäta | Av |
| Granskningsdatum | Om fyra veckor |
Förfrågningar kommer från felhanteringsverktyget via flödet för inkommande arbete API, var och en med en
signal som anger verktygets ärende-ID, routarna och antalet förfrågningar. Varje
ärende blir högst en arbetsuppgift, oavsett hur ofta aviseringen utlöses. En dålig vecka kostar
högst 100 USD. En avisering utan routar väntar i stället för att starta, eftersom
det inte går att avgöra om åtgärden fungerade. Skicka med routarna eller aktivera Godkänn
arbete vars resultat inte går att mäta.
Hantera buggar som rapporteras i GitHub
Användare skapar ärenden i webbappens repository snabbare än någon hinner gå igenom dem.
| Inställning | Värde |
|---|---|
| Typ | Löpande |
| Mål | Åtgärda buggar som användare rapporterar i webbappen |
| Projekt | Webbapp |
| Budget | 200 USD och 30 agenttimmar per månad |
| Godkänn arbete vars resultat inte går att mäta | På |
En Kvalificera arbete -automatisering för nya GitHub-ärenden skapar en förfrågan för varje ärende. Kvalificeringen sorterar bort dubbletter, ärenden som den aktuella releasen redan åtgärdar och rapporter som inte går att återskapa. Mätbarhetsinställningen är på eftersom ärendena saknar uppgifter om routar och trafik, vilket gör att resultatkontraktet inte går att mäta. Om inställningen var av skulle alla ärenden vänta. Ärenden som öppnas av personer med skrivbehörighet startar automatiskt; resten väntar på att någon startar dem, vilket beskrivs i När arbetet startar.
Agera på kundernas rapporter
Supportverktyget samlar in kundrapporter, men de brådskande rapporterna når utvecklingsteamet för sent.
| Inställning | Värde |
|---|---|
| Typ | Löpande |
| Mål | Åtgärda det kunder rapporterar i kundportalen |
| Projekt | Kundportal |
| Budget | 150 USD och 15 agenttimmar per vecka |
| Godkänn arbete vars resultat inte går att mäta | På |
Supportverktyget skickar varje rapport via flödet för inkommande arbete API med ett servicekonto. Kvalificeringen avvisar sådant som inte går att återskapa, och mandatet ser till att en intensiv rapportvecka inte tar upp mer än hälften av agentplatserna eller överskrider budgeten.
Slutför en upprensning före en deadline
Ett betalnings-SDK som du använder når slutet av sin livscykel nästa kvartal, och dess föråldrade anrop finns i två olika tjänster.
| Inställning | Värde |
|---|---|
| Typ | Tidsbegränsat |
| Mål | Ta bort alla anrop till det föråldrade betalnings-SDK:t |
| Målvärde | Högst 0 anrop till det föråldrade SDK:t |
| Projekt | Kassa, Billing API |
| Budget | 300 USD och 40 agenttimmar per månad |
| Godkänn arbete vars resultat inte går att mäta | På |
Ett CI-jobb skickar en förfrågan per anropsställe, med fil och rad som signatur för signalen, så att ett anropsställe som hittas igen vid nästa körning kopplas till arbetet som redan hanterar det. Coroid läser ännu inte av målvärdet: när det sista anropet har försvunnit väljer du Slutför själv.
När du inte behöver ett mandat
- Arbete som någon ber om. Förfrågningar som skickas via Nytt arbete eller importeras antas när de uppfyller kraven. De skjuts aldrig upp och förbrukar aldrig mandatets budget.
- Scheman och uppföljningar via hookar. De skapar uppgifter direkt, utan kvalificering, så inget mandat begränsar dem. Ge dem i stället lägre prioritet; se Scheman.
- Ett engångsinitiativ. Arbete med en känd omfattning och ett slut är en plan, inte ett mandat.
- Överlappande mandat. När flera aktiva mandat omfattar samma projekt styr det äldsta förfrågningarna. Tilldela varje projekt till ett mandat.
Var mandaten finns
Öppna Kvalitetskontroll → Mandat. Alla omfång under Kvalitetskontroll – organisationens standard och varje projekt – länkar till samma lista, eftersom ett mandat tillhör organisationen och själv anger vilka projekt det omfattar. Om du öppnar ett projekts omfång filtreras inte listan.
Ägare och administratörer kan skapa och ändra mandat. Medlemmar kan läsa dem. Agenter och tjänstekonton kan inte ändra mandat.
Vad ett mandat innehåller
Typ. Tidsbegränsade mandat har ett mål och avslutas när det nås, till exempel ”minska antalet öppna säkerhetsbrister till noll”. Löpande mandat gäller underhåll, till exempel ”se till att produktionsrutter inte får ohanterade undantag”. De har ett granskningsdatum i stället för ett mål.
Syfte. En mening som beskriver vad som ska gälla. Det är så människor förstår mandatet; antagningen styrs i stället av omfång, budget och status.
Utgångsvärde. Mätvärdet som mandatet jämförs med och varifrån det hämtas. Du anger mätvärdet, och avläsningarna samlas in av Coroid, de skrivs aldrig in manuellt. De följer aldrig med i en export av inställningarna. För ett nytt mandat visas Ingen avläsning ännu.
Mål. För ett tidsbegränsat mandat: mätvärdet och värdet som innebär att arbetet är klart.
Prioriteringar. En per rad. När arbete konkurrerar om kapaciteten går den första prioriteringen först.
Omfång.
- Projekt. Projekten som mandatet omfattar. Om inga är markerade omfattar det alla organisationens projekt, även projekt som skapas senare. Markera de projekt du menar; ett mandat som gäller ett enda repo bör ange det projektet.
- Områden. Sökvägsmönster i projekten ovan, ett per rad, till exempel
apps/api-*/src/**. Tomt betyder var som helst. - Ändringsklasser. De typer av ändringar mandatet gäller, till exempel
exception_fix. - Tillåt arbete vars resultat inte kan mätas. Avstängt som standard. När det är avstängt väntar en förfrågan vars resultatkontrakt inte kan mätas, i stället för att arbetet startar.
Budget. Vad Coroid får förbruka på mandatet under varje period, i amerikanska dollar och agenttimmar, per vecka eller månad. En vecka börjar på måndag kl. 00:00 UTC; en månad börjar den första dagen. Budgeten fylls automatiskt på igen.
Villkor för att stoppa. Stoppa när budgeten är förbrukad, när målet har nåtts, efter ett visst antal resultat utan tydligt utfall i följd eller ett visst datum.
Granskningsdatum. För ett löpande mandat: datumet då någon förnyar eller avslutar det.
Regel för avvikelse. För ett löpande mandat: en gräns för utgångsvärdet. Om värdet överskrider gränsen under en period ska en eskalering skickas till ägaren.
Status och versioner
Ett mandat börjar som ett utkast. Publicera gör det aktivt, och bara aktiva mandat antar arbete.
| Åtgärd | Effekt |
|---|---|
| Pausa / Återuppta | Stoppar och återupptar antagningen. Arbete som redan pågår slutförs. |
| Pausa tills vidare | Stoppar antagningen tills någon undersöker varför. |
| Slutför | Avslutar ett mandat när målet har uppnåtts. |
| Avsluta permanent | Avslutar mandatet permanent. Ett avslutat mandat kan inte återaktiveras; dess versioner och historik finns kvar. |
När du ändrar ett publicerat mandat publiceras en ny version. Tidigare versioner sparas tillsammans med uppgift om vem som publicerade dem och när.
Varje publicering och statusändring är ett beslut i mandatets
beviskedja, med uppgift om vem som fattade beslutet, och en händelse i organisationens granskningslogg (mandate.created, mandate.published,
mandate.paused och så vidare).
Vilka förfrågningar ett mandat styr
Ett mandat styr förfrågningar som kommer in utan en person i Coroid: via arbetsinflödet API, från automatiseringar och integrationer som GitHub eller Jira-ärenden samt från övervakning.
En förfrågan som en person skickar via Nytt arbete, eller importerar, omfattas inte av ett mandat. Den antas alltid när den uppfyller kraven, skjuts aldrig upp och förbrukar inte mandatets budget. En person har bett om arbetet; agentplatserna lägger det helt enkelt i kön.
En obevakad förfrågan kopplas till det äldsta aktiva mandatet som omfattar förfrågningens projekt eller alla projekt. En förfrågan som inte omfattas av något mandat antas som en vanlig förfrågan.
Vad antagningen avgör
Antagningen är det sista steget i kvalificeringen. Den gör inga modellanrop. För varje förfrågan fattas ett av följande beslut:
- Antagen. Arbetet skapas med en reservation för en agentplats och, om det omfattas av ett mandat, en del av mandatets budget. Om arbetet sedan startar automatiskt beror på källan, enligt beskrivningen i När arbetet startar.
- Redan löst. Samma signal – samma ärende i ärendehanteringssystemet eller övervakningen, eller samma fel – hanteras redan via en annan förfrågan i något av organisationens projekt. Förfrågan kopplas till det arbetet, och inget nytt skapas.
- Ingen ändring behövs. Kvalificeringens bedömning visade att det rapporterade beteendet är avsett. Inget skapas.
- Uppskjuten. Förfrågan kan antas men bör inte starta nu: mandatets andel av agentplatserna används, budgeten för perioden är förbrukad eller resultatet inte kan mätas och mandatet inte tillåter det.
Varje beslut och skälet till det sparas tillsammans med förfrågan.
Uppskjutna förfrågningar
Coroid granskar uppskjutna förfrågningar på nytt varje minut och tar in dem så snart en plats eller budget blir ledig, enligt mandatets aktuella version. Om mandatets budget höjs, eller ett annat mandat som håller platser pausas, frigörs en uppskjuten förfrågan vid nästa kontroll. Det går inte att starta en direkt med en åsidosättning.
En förfrågan som har väntat längre än mandatets tidsfönster – en vecka eller en månad – eller vars mandat inte längre är aktivt, avslutas utan att arbete utförs.
Så delar mandatstyrt arbete på kapaciteten
Mandatstyrt arbete får som mest använda hälften av organisationens agentplatser åt gången, inklusive arbete som pågår och arbete som har tagits in men inte startat än. Resten hålls fri för det som människor efterfrågar. Om din plan har obegränsat antal platser gäller samma andel i stället för din månatliga utgiftsbudget.
En förfrågan som har tagits in reserverar en plats i 30 minuter medan uppgiften startar. Därefter upphör reservationen att gälla: om arbetet för förfrågan ännu inte har skapats går den tillbaka till uppskjutna förfrågningar, och en uppgift som redan finns väntar på en plats precis som alla andra.
I en inställningsexport
Mandat följer med i en inställningsexport: typ, mål, målsättning, prioriteringar, omfattning, budget, stoppvillkor, granskningsdatum och regel för avvikelse. Projekt matchas med sin stabila nyckel och ägaren efter roll. Baslinjer följer aldrig med; de är mätvärden för organisationen de kommer från. Ett mandat med en ny målsättning importeras som ett utkast som en person kan publicera. Ett mandat vars målsättning matchar ett befintligt mandat uppdaterar det: utkastet om det fortfarande är ett utkast, annars som en ny publicerad version.